異常處理【自定義異常類】
阿新 • • 發佈:2019-01-25
自定義異常類的一般形式為:
class MyException extends exception{..................}
在自定義異常中,根據需要定義的屬性和方法,或則過載父類的屬性和方法,使其能夠體現相應的異常資訊。
自定義異常類例項,定義銀行賬戶類,包含取錢、存錢的方法,如果取款金額大於餘額則丟擲異常;
分析:程式有三個類:賬戶類、自定義異常類(餘額不足)、主類;賬戶類只有一個成員變數(賬戶餘額)、存錢和取錢和獲取餘額的成員方法。
自定義異常類:
package AbnormalClass; class InsufficientFundsException extends Exception { //自定義異常類 private Account account; //賬號 private double dAmount; //取款金額 InsufficientFundsException(){ //引數為空的構造方法 } InsufficientFundsException(Account account, double dAmount){ //帶參構造方法 this.account = account; this.dAmount = dAmount; } private String getMssage() { //覆蓋父類的方法 String str = "賬戶餘額:" + account.getbalance() + ",取款額:" +dAmount + ",餘額不足"; return str; } }
賬戶類:
package AbnormalClass; public class Account { //賬戶類 double balance; //賬戶餘額 public void deposite(double dAmount) { if(dAmount > 0.0) balance += dAmount; } //取錢 public void withdrawal(double dAmount) throws InsufficientFundsException{ if(balance < dAmount) { //人為丟擲異常 throw new InsufficientFundsException(this,dAmount); } balance = balance - dAmount; System.out.println("取款成功!賬戶餘額為:" + balance); } public double getbalance() { //獲取賬戶餘額 return balance; } }
主類:
package AbnormalClass;
public class App4 {
public static void main(String[] args) {
try {
Account account = new Account(); //建立賬戶物件
account.deposite(1000); //存錢
account.withdrawal(200); //取錢
}catch(InsufficientFundsException e) {
System.out.println(e.getMessage());
}
}
}