第1楼 2008-04-21 15:52 lib509 写道:
菜鸟求教 一个简单的异常测试程序
一个简单的异常测试程序 老是运行出两个错误出来~
请求高手解决 感谢!
/*5.4上机指导 模拟银行取款业务*/
//密码错误异常
class PasswordErrorException extends Exception {
public String toString(){ //覆写toString()方法
return "PasswordErrorException:密码错误!";
}
}
//取款超过限额异常
class OverTopException extends Exception{
public String toString(){ //覆写toString()方法
return "OverTopException:取款超过限额!";
}
}
//余额不足异常
class BalanceLackException extends Exception{
public String toString(){ //覆写toString()方法
return "BalanceLackException:余额不足!";
}
}
public class Bank{
private int top; //一次最高取款限额
public int balance; //余额
private static boolean exceptionSign; //异常标志,用于判断是否有异常产生
public Bank(int top , int balance){
this.top=top;
this.balance=balance;
this.exceptionSign=false; //异常初始化为假
public int getBalance () { //获取余额
return this.balance;
}
public void fetchFund(String password,int money) throws PasswordErrorException,BalanceLackException,OverTopException {
if (password.length()=0) throw new PasswordErrorException(); //引发密码异常
if (money>top) throw new OverTopException(); //引发取款额限制异常
if (money>balance) throw new BalanceLackException(); //引发余额不足异常
balance -= money;
}
public static viod main(String[] args) {
Bank bank =new Bank(2000,1000);
try{
bank.fetchFund("1",500);
bank.fetchFund("1",1000);
bank.fetchFund("1",2500);
bank.fetchFund("",100);
}
catch(PasswordErrorException e) {
exceptionSign = ture;
System.out.println(e);
}
catch(OverTopException e) {
exceptionSign = ture;
System.out.println(e);
}
catch(BalanceLackException e) {
exceptionSign = ture;
System.out.println(e);
}
finally{
if (exceptionSign) System.out.println("有错误产生,操作未完成!");
else System.out.println("操作完成!目前的余额为:"+bank.getBalance);
}
} ;
}
}