亚洲色蝴蝶中文娱乐网,在线亚洲欧美一区二区中文字幕,无人视频在线观看视频高清视频,99午夜国产精品一区二区,人人妻人人爽人人狠狠

java自定義異常類(lèi)的編寫(xiě)

時(shí)間:2022-10-10 14:30:31 類(lèi)型:JAVA
字號(hào):    

在 Java 中你可以自定義異常, 所有異常都必須是 Throwable 的子類(lèi)。

如果希望寫(xiě)一個(gè)檢查性異常類(lèi),則需要繼承 Exception 類(lèi)。

如果你想寫(xiě)一個(gè)運(yùn)行時(shí)異常類(lèi),那么需要繼承 RuntimeException 類(lèi)

  //自定義異常類(lèi),繼承Exception類(lèi)

public class MyException extends Exception{
    //此處的amount用來(lái)儲(chǔ)存當(dāng)出現(xiàn)異常(取出錢(qián)多于余額時(shí))所缺乏的錢(qián)
    private double amount;
    public MyException(double amount)
    {
        this.amount = amount;
    }
    public double getAmount()
    {
        return amount;
    }
}

如何使用我們自定義的異常類(lèi),

在下面的 CheckingAccount 類(lèi)中包含一個(gè) withdraw() 方法拋出一個(gè) MyException異常。

public class CheckingAccount {
    //balance為余額
    private double balance;
    //方法:存錢(qián)
    public void deposit(double amount)
    {
        balance += amount;
    }
    //方法:返回余額
    public double getBalance()
    {
        return balance;
    }
    //方法:取錢(qián)
    public void withdraw(double amount) throws MyException {
        if(amount <= balance)
        {
            balance -= amount;
        }
        else
        {
            double needs = amount - balance; //差的錢(qián)
            throw new MyException(needs);
        }
    }
}

  如何調(diào)用 CheckingAccount 類(lèi)的 deposit() 和 withdraw() 方法

public class CheckAccountTest {
    public static void main(String[] args) {
        CheckingAccount checkingAccount = new CheckingAccount();
        checkingAccount.deposit(100);
        try {
            checkingAccount.withdraw(200);
        } catch (MyException e) {
            System.out.println("你的錢(qián)差" + e.getAmount());
            e.printStackTrace();
        }
    }
}
你的錢(qián)差100.0
com.zhuangzi.sbdemo.testClass.MyException
	at com.zhuangzi.sbdemo.testClass.CheckingAccount.withdraw(CheckingAccount.java:25)
	at com.zhuangzi.sbdemo.testClass.CheckAccountTest.main(CheckAccountTest.java:8)
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8


<