계좌 출금에 대한 실패 예외 클래스를 만든다.
.
.
package failException;
public class FailException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
long amount; // 출금시 모자라는 금액
public FailException(long amount) {
this.amount = amount;
}
public long getAmount() {
return amount;
}
}
.
.
그리고 계좌에 대한 입출금 클래스를 만든다.
.
.
package failException;
public class CheckAccount {
private long balance;
private int number;
public CheckAccount(long balance, int number) {
this.balance = balance;
this.number = number;
}
public void deposit(long amount) {
System.out.println("입금 전 잔액 : " + balance + "원");
balance += amount;
System.out.println("입금 금액 : " + amount + "원");
System.out.println("----------------------------");
System.out.println("현재 잔액 : " + balance + "원\n");
}
public void withdraw(long amount) throws FailException {
System.out.println("출금 전 잔액 : " + balance + "원");
if (balance >= amount) {
balance -= amount;
System.out.println("출금 금액 : " + amount + "원");
System.out.println("----------------------------");
System.out.println("현재 잔액 : " + balance + "원\n");
} else {
FailException e = new FailException(amount - balance);
throw e;
}
}
public long getBalance() {
return balance;
}
public int getNumber() {
return number;
}
}
.
.
그리고 실제로 입출금 계좌를 테스트해본다
.
.
package failException;
public class TestAccount {
public static void main(String[] args) {
CheckAccount chAcc = new CheckAccount(10000, 1000);
try {
chAcc.deposit(5000);
chAcc.withdraw(5000);
chAcc.withdraw(23000); // 잔액보다 많은 금액을 출금
} catch (FailException e) {
System.out.println("출금 잔액이 " + e.getAmount() + "원이 부족합니다.");
}
System.out.println("프로그램 종료");
}
}
.
.
728x90
반응형
'Java > 본격 Java 기타클래스' 카테고리의 다른 글
[Java] 고의로 예외 만들기 (0) | 2020.07.15 |
---|---|
[Java] 예외처리 실습 (0) | 2020.07.15 |
[Java] Anonymous의 활용법 (0) | 2020.07.15 |
[Java] Anonymous란? (0) | 2020.07.15 |
[Java] StringTokenizer 클래스 (0) | 2020.07.02 |