设计一个银行取钱系统
1.设计一个账户异常模块(RuntimeException)
package BankAccount;
public class MyException extends Exception {
private double amount;
public MyException(double amount) {
super();
this.amount = amount;
}
public double getAmount() {
return amount;
}
}
2.设计一个银行处理模块
package BankAccount;
public class Account {
private double balance;
public double getBalance() {
return balance;
}
public int getAccount() {
return account;
}
private int account;
public Account(int account) {
this.account = account;
}
//deposit method
public void deposit(double amount) {
balance += amount;
}
//withdraw method
public void withdraw(double amount) throws MyException {
if (amount <= balance) {
balance -= amount;
} else {
double need = amount - balance;
throw new MyException(need);
}
}
}
3.设计一个测试模块
package BankAccount;
public class Test {
public static void main(String[] args) {
Account a=new Account(1234);
System.out.println("Deposit 1000: ");
a.deposit(1000);
try {
System.out.println("Withdraw: 500");
a.withdraw(500);
}catch (MyException e){
System.out.println("Sorry, your balance is not enough");
e.printStackTrace();
}finally {
System.out.println(a.getBalance());
}
try {
System.out.println("Withdraw: 600");
a.withdraw(600);
}catch (MyException e){
System.out.println("Sorry, your balance is not enough, you are short $"+e.getAmount());
e.printStackTrace();
}finally {
System.out.println(a.getBalance());
}
}
}
测试结果:
Deposit 1000:
Withdraw: 500
500.0
Withdraw: 600
Sorry, your balance is not enough, you are short $100.0
500.0
BankAccount.MyException
at BankAccount.Account.withdraw(Account.java:31)
at BankAccount.Test.main(Test.java:19)
Process finished with exit code 0