14.6 사용자 정의 예외 (Custom Exception)


1. 나만의 전용 경보기 🔔

자바에는 NullPointerException이나 IOException 같은 표준 예외들이 이미 많이 있습니다. 하지만 “은행 잔고 부족”이나 “회원 아이디 중복” 같은 상황을 표현하는 예외는 없습니다. 이건 내 프로그램만의 특수한 상황이니까요.

이럴 때 만드는 것이 바로 사용자 정의 예외입니다.

Custom Exception Alarm



2. 만들기 (상속만 받으면 끝)

예외도 클래스입니다. Exception을 상속받으면 됩니다.

// "일반 예외"로 만들고 싶다면 Exception 상속 (권장)
public class BalanceInsufficientException extends Exception {
    
    // 기본 생성자
    public BalanceInsufficientException() {
    }

    // 에러 메시지를 받는 생성자 (부모에게 전달)
    public BalanceInsufficientException(String message) {
        super(message);
    }
}



3. 사용하기 (throw)

이제 내가 만든 예외를 필요한 상황에서 터뜨려(throw) 봅니다.

은행 계좌 클래스

public void withdraw(int money) throws BalanceInsufficientException {
    if (balance < money) {
        // "잔고 부족" 경보를 울림!
        throw new BalanceInsufficientException("잔고가 모자랍니다: " + (money - balance));
    }
    balance -= money;
}

실행하는 곳

try {
    account.withdraw(50000);
} catch (BalanceInsufficientException e) {
    // 내가 만든 예외를 잡아서 처리
    System.out.println(e.getMessage()); // "잔고가 모자랍니다..."
    System.out.println("대출을 알아보시겠습니까?");
}

핵심 요약: 내 프로그램의 비즈니스 로직에 맞는 명확한 이름의 예외를 만들면, 코드의 가독성과 유지보수성이 훨씬 좋아집니다.

서브목차