728x90
사용자 정의 예외 만들기, 예외 되던지기
사용자 정의 예외 만들기
- 우리가 직접 예외 클래스를 정의 할 수 있다.
- 조상은 Exception과 RuntimeException 중 에서 선택 하기.
Exception 예외 >> 사용자가 발생 시키는 예외. (예외 처리 필수)
RuntimeException 예외 >> 개발자의 실수로 발생 시키는 예외. (예외 처리 선택)
예시)
class MyException extends Exception {
MyException(String msg) { // 문자열을 매개변수로 받는 생성자.
super(msg); // 조상인 Exception 클래스의 생성자를 호출.
}
}
예외 되던지기 (exception re-throwing)
- 예외를 처리한 후에 다시 예외를 발생 시키는 것.
- 호출한 메서드와 호출된 메서드 양쪽 모두에서 예외 처리 하는 것.
예외를 모두 다 처리 하지 않고, 일부만 처리하고, 호출 한쪽으로 나머지 예외를 던지기
그러면 나머지 예외를 호출 한 곳에서 받아서, 나머지 예외를 받아서 예외를 처리
즉, 예외 분담 처리. (양쪽에 try-catch 가 있다)
연결된 예외 (chained exception)
- 한 예외가 다른 예외를 발생 시킬 수 있다.
- 예외 A가 예외 B를 발생 시키면, A는 B의 원인 예외. (cause exception)
Throwable initCause(Throwable cause)
>> 지정한 예외를 원인 예외로 등록.
Throwable getCause()
>> 원인 예외를 반환.
Throwable은 Exception과 Error 의 최고 조상 이다.
예외를 왜 연결 시킬까 ?
이유 1 : 여러 예외를 하나로 묶어서 다루기 위해.
이유 2 : checked (필수) 예외를 unchecked (선택) 예외로 변경 하려 할때.
반응형