[Java] 사용자 정의 예외 만들기

nathan·2022년 1월 26일
0

JAVA

목록 보기
36/45

사용자 정의 예외 만들기

  • 우리가 직접 예외 클래스를 정의할 수 있다. (상속을 통해서~)
  • 조상은 ExceptionRuntimeException 중에서 선택한다.
    • Exception : 사용자가 발생시키는 예외 (필수 처리 예외)
    • RuntimeException : 프로그래머가 (실수로) 발생시키는 예외 (선택적 처리 예외)
class MyException extends Exception {
    // 에러 코드 값을 저장하기 위한 필드를 추가할수도 있다.
    private final int ERR_CODE; // 생성자를 통해 초기화할 목적
    
    // MyException(String msg){ // 문자열을 매개변수로 받는 생성자.
    //    super(msg); // 조상인 Exception 클래스의 생성자를 호출한다.
    // }
    

    MyException(String msg, int errCode) { // 생성자
        super(msg);
        ERR_CODE = errCode;
    }

    MyException(String msg){ // 문자열을 매개변수로 받는 생성자.
        this(msg, 100); // 조상인 Exception 클래스의 생성자를 호출한다.
    }
}

예외 되던지기 (exception re-throwing)

  • 예외를 처리한 후에 다시 예외를 발생시키는 것
  • 호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하는 것
public class Ex8_12 {
    public static void main(String[] args) {
        try {
            method1();
        } catch (Exception e){
            System.out.println("main 메서드에서 예외가 처리되었습니다.");
        }
    }

    static void method1() throws Exception {
        try {
            throw new Exception();
        } catch (Exception e) {
            System.out.println("method1 메서드에서 예외가 처리되었습니다.");
            throw e;
        }
    }
}
>>>
method1 메서드에서 예외가 처리되었습니다.
main 메서드에서 예외가 처리되었습니다.

언제 되돌리기를 할까?

  • 한 번에 예외처리를 진행하는 것이 아니라, 여러 곳에서 분담하여 예외처리를 진행해야 할 때 사용한다.
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글