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);
}
}