1. 程式人生 > >Java中自定義異常

Java中自定義異常

        今天覆習了一下Java中的異常處理,折騰了一下。都知道,在Java應用程式中,對異常的處理有兩種方式:處理異常和宣告異常。處理異常使用try-catch-finally捕獲異常,宣告異常則需要將其新增到方法名結束的位置(throws)。異常分為三種:可檢測異常(經編譯器驗證)、非檢測異常(一般是沒有遵循處理或宣告規則,如陣列越界)、自定義異常。寫了一個經典的銀行存取錢的自定義異常的例子,不是十分嚴謹,將就。

程式碼如下:

//自定義異常
public class Test9 {

public static void main(String[] args) {
Bank bank = new Bank(1000);
bank.save(1000);
try {
bank.withdrawel(6000);
System.out.println("取錢成功");
} catch (BankExcepton e) {
System.out.println("發生異常:"+e.toString());
System.out.println(e.message());
}
bank.showBalance();

}

}


class BankExcepton extends Exception{
Bank bank;
int amount; //取款數

public BankExcepton(Bank bank, int amount) {
super();
this.bank = bank;
this.amount = amount;
}


public String message() {
String str = "取錢數為:"+amount;
return str;
}
}


class Bank{
int balance;//餘額


public Bank(int balance) {
super();
this.balance = balance;

    void save(int addmoney){  //存錢操作
    if (addmoney>0) {
balance += addmoney;
}
    }
    void withdrawel(int amount) throws BankExcepton{ //取錢操作
    if (amount>balance) {
throw new BankExcepton(this,amount);
}else {
balance-=amount;
}
    }
    void showBalance(){    //顯示餘額
    System.out.println("餘額為"+balance);
    }
}