在 Java 中你可以自定義異常, 所有異常都必須是 Throwable 的子類。
如果希望寫一個檢查性異常類,則需要繼承 Exception 類。
如果你想寫一個運(yùn)行時異常類,那么需要繼承 RuntimeException 類
//自定義異常類,繼承Exception類
public class MyException extends Exception{ //此處的amount用來儲存當(dāng)出現(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); } } }
如何調(diào)用 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