在 Java 中你可以自定義異常, 所有異常都必須是 Throwable 的子類。
如果希望寫一個檢查性異常類,則需要繼承 Exception 類。
如果你想寫一個運行時異常類,那么需要繼承 RuntimeException 類
//自定義異常類,繼承Exception類
public class MyException extends Exception{
//此處的amount用來儲存當出現(xiàn)異常(取出錢多于余額時)所缺乏的錢
private double amount;
public MyException(double amount)
{
this.amount = amount;
}
public double getAmount()
{
return amount;
}
}如何使用我們自定義的異常類,
在下面的 CheckingAccount 類中包含一個 withdraw() 方法拋出一個 MyException異常。
public class CheckingAccount {
//balance為余額
private double balance;
//方法:存錢
public void deposit(double amount)
{
balance += amount;
}
//方法:返回余額
public double getBalance()
{
return balance;
}
//方法:取錢
public void withdraw(double amount) throws MyException {
if(amount <= balance)
{
balance -= amount;
}
else
{
double needs = amount - balance; //差的錢
throw new MyException(needs);
}
}
}如何調用 CheckingAccount 類的 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("你的錢差" + e.getAmount());
e.printStackTrace();
}
}
}你的錢差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
