(파일 분리한 게 많아서 일단 관련된 파일들만 요약해서 올리겠습니다.)
1. 일단 예외 클래스 구조는 다음과 같습니다.
Exception 클래스를 기초 클래스로 하고 WithdrawException 클래스와 InvalidException 클래스를 유도 클래스로 선언했습니다.
*WithdrawException 클래스 : 예금된 금액보다 더 많이 출금액을 설정한 경우
*InvalidException 클래스 : 입금, 출금 상황에서 마이너스를 금액으로 설정한 경우
2. model이 되는 클래스는 다음과 같습니다.
Member 클래스(어떤 이자율도 갖지 않는 기본 클래스를 말합니다.) 이를 상속하는 NormalMember 클래스(이자율을 설정할 수 있습니다.) 또 이것을 한번 더 상속한 HighCreditMember 클래스(신용등급을 설정해서 기본 이자율과 합산합니다.) 정리하면 3단으로 되어있는 형태입니다. 예외가 발생하면 예외를 핸들러 클래스에게 던집니다.