/** * 自定义异常类的练习:包括处理和抛出异常 */
测试类:TestBank1
package Exception_test2;
/**
* 自定义异常类的练习:包括处理和抛出异常
*/
public class TestBank1 {
public static void main(String[] args) throws OverDrawnException, DepositException {
//定义一个("001", "张三", "天源路789号", 200)
Bank1 b = new Bank1("001", "张三", "天源路789号", 200);
//存入90、-90,取出290
try {
b.save(90);
b.save(-90);
} catch (DepositException e) {
System.out.println(e.toString());
}
b.take(290);
System.out.println(b.getNum());
}
}
自定义异常一:存款金额不能小于0
//package Exception_test2;
//自定义异常
public class DepositException extends Exception {
//存款金额不能小于0
public String toString(){
return "存款不能为负数";
}
}
自定义异常二:账户余额出现负值的异常处理
//package Exception_test2;
//自定义异常
public class OverDrawnException extends Exception {
//账户余额出现负值的异常处理
public String toString(){
return "存款不能为负数";
}
}
定义bank类:take()直接处理异常、save()抛出异常
//package Exception_test2;
//定义bank类:take()直接处理异常;save()抛出异常
public class Bank1 {
//私有属性
private String no;
private String name;
private String address;
private double num;
//取钱
boolean take(double num) {
try {
if (this.num - num < 0) {
throw new OverDrawnException();
} else {
this.num -= num;
}
} catch (OverDrawnException e) {
System.out.println(e.toString());
}
return true;
}
//存钱
void save(double num) throws DepositException {
if (num < 0) {
throw new DepositException();
} else {
this.num += num;
}
}
//构造函数
Bank1() {
}
public Bank1(String no, String name, String address, double num) {
this.no = no;
this.name = name;
this.address = address;
this.num = num;
}
//get与set函数:
public double getNum() {
return num;
}
public void setNum(double num) {
this.num = num;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}