这几天有点小忙,都没时间更新博客了,今天趁着Java实验课,把做的这次实验放上去吧!
实验5 自定义异常的使用
a.在定义一个银行类Bank时, 有存钱deposit()、取钱withdraw()、显示余额showBalance()等方法。若取钱数大于余额则作为异常处理(InsufficientFundsException)。产生异常的条件是余额少于取额, 因此是否抛出异常要判断条件,要定义好自己的异常类。
b. 定义异常类,当从键盘输入A或a时,抛出自定义异常。
实验要求:
1.掌握如何定义异常;
2.掌握如何抛出异常;
3.掌握如何捕捉处理异常。
-----------------------------------------------
不考虑其他情况,只有取钱这个操作会出现异常,先定义自己的异常:
packagebank;
classMyExceptionextendsException{
String message;
publicMyException() {
message = "您的余额不足!";
}
publicString getMessage(){
returnmessage;
}
}
银行类的主类:
packagebank;
importjava.util.Scanner;
publicclassBank {
privatedoublemoney;
privateString menu;
publicBank(doublen) {
this.money = n;
}
//取钱
publicvoidwithdrawal(doublen)throwsMyException{
if(n>money) {
MyException ex = newMyException();
throw(ex);
}
money = money - n;
System.out.println("取钱成功!");
this.showBalance();
this.showMenu();
}
//存钱
publicvoiddeposit(doublen){
money += n;
System.out.println("您已成功存入"+n);
this.showBalance();
this.showMenu();
}
//查看余额
publicvoidshowBalance(){
System.out.println("您当前账户的余额是:"+money);
this.showMenu();
}
publicvoidshowMenu(){
StringBuffer strBuffer = newStringBuffer();
strBuffer.append("\n请选择您的操作:\n");
strBuffer.append("存钱[c]\t");
strBuffer.append("取钱[q]\t");
strBuffer.append("查询余额[y]\t");
strBuffer.append("退出系统[quit]\t");
System.out.println(strBuffer);
Scanner input = newScanner(System.in);
this.menu = input.nextLine();
this.getMenu();
}
publicvoidgetMenu() {
if(this.menu.equals("c")) {
System.out.println("请输入您要存入的金额:\n");
Scanner input = newScanner(System.in);
doublem1 = input.nextDouble();
this.deposit(m1);
}else{
if(this.menu.equals("q")) {
System.out.println("请输入您要取出的金额:\n");
Scanner input = newScanner(System.in);
doublem1 = input.nextDouble();
try{
this.withdrawal(m1);
} catch(MyException e) {
System.out.println(e.getMessage());
}finally{
this.showMenu();
}
}else{
if(this.menu.equals("y")){
this.showBalance();
}else{
if(this.menu.equals("quit")){
}else{
this.showMenu();
}
}
}
}
}
}
能改进的地方还有很多,getMenu这个...嘿嘿....
住程序:
packagebank;
publicclassBankMain {
/**
* @param args
*/
publicstaticvoidmain(String[] args) {
Bank a = newBank(200);
a.showMenu();
}
}
自己写的垃圾源代码在这里: [file]upload/201105/2011050316181626.rar[/file]