1. 程式人生 > >異常處理【自定義異常類】

異常處理【自定義異常類】

自定義異常類的一般形式為:

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

}