JAVA基礎作業練習—自定義異常之模擬ATM
阿新 • • 發佈:2019-01-10
package homework; import java.util.InputMismatchException; import java.util.Scanner; class Atm { private double banlance; double num; private String ID; public Atm(String ID) { this.ID = ID; } public void Deposit(double banlance) throws NotNegativeNumber { if (banlance < 0) { throw new NotNegativeNumber(); } if (this.banlance != 0) { banlance = this.banlance + banlance; } else this.banlance = banlance; } public void withDraw(double Money) throws InsufficientFundsException, NotNegativeNumber { if (Money > banlance) { throw new InsufficientFundsException(); } else banlance = banlance - Money; } public void showBanlance() { System.out.println("您的餘額為:" + banlance); } public void show() { System.out.println(ID + " 使用者您好,歡迎使用本ATM"); System.out.println("選擇1,存款業務"); System.out.println("選擇2,取款業務"); System.out.println("選擇3,查詢餘額業務"); System.out.println("選擇4,退出"); } } class NotNegativeNumber extends Exception { //自定義異常 public NotNegativeNumber() { } } class InsufficientFundsException extends Exception { //自定義異常 public InsufficientFundsException() { } } public class BankTest { public static void main(String[] args) { Atm atm = new Atm("12345-3455"); atm.show(); boolean flag = true; while (flag) { int num = new Scanner(System.in).nextInt(); switch (num) { case 1: System.out.println("請輸入存款金額"); while (true) { try { double banlance = new Scanner(System.in).nextDouble(); atm.Deposit(banlance); atm.show(); break; } catch (NotNegativeNumber e) { System.out.print("請輸入正確的金額,不能為負數"); } catch (InputMismatchException e) { System.out.println("輸入正確的金額,不能為字元"); } } break; case 2: System.out.println("輸入取款金額"); while (true) { try { double money = new Scanner(System.in).nextDouble(); atm.withDraw(money); atm.show(); break; } catch (NotNegativeNumber e) { System.out.println("輸入正確的金額,不能為負數"); } catch (InsufficientFundsException e) { System.out.println("抱歉,餘額不足"); } } break; case 3: atm.showBanlance(); atm.show(); break; case 4: flag = false; System.out.println("交易完成,請取回您的卡"); break; } } } }