Exception과 하위 예외는 모두 컴파일러가 체크하는 체크 예외다.
체크 예외는 잡아서 처리하거나, 밖으로 던지도록 선언해야한다.
안 그러면 컴파일 오류가 발생한다.
package exception.basic.checked;
/**
* Exception을 상속받은 예외는 체크 예외가 된다.
*/
public class MyCheckedException extends Exception {
public MyCheckedException(String message) {
super(message);
}
}
package exception.basic.checked;
public class Client {
public void call() throws MyCheckedException {
throw new MyCheckedException("ex");
}
}
public void callCatch() {
try {
client.call();
} catch (Exception e) {
//예외 처리 로직
}
System.out.println("정상 흐름");
}
package exception.basic.checked;
public class CheckedThrowMain {
public static void main(String[] args) throws MyCheckedException {
Service service = new Service();
service.callThrow();
System.out.println("정상 종료");
}
}