JAVA
예외처리 - Unchecked Exception(런타임 익셉션)
고민말고생각하는사람
2024. 6. 2. 18:26
RuntimeException 을 상속받는 모든 sub 예외들은 Unchecked Exception이라 했다.
코드 작성 시 컴파일러가 예외를 체크하지 않는다.
Unchecked 와 Checked 예외라는 점에서 동일하다. 그러나 Unchecked 는 throws 생략이 가능하다. thorws 를 생략해도 예외 발생 시 상위(메서드를 호출한 쪽)으로 예외를 던진다.
public class UncheckedException extends RuntimeException{
public UncheckedException(){
...;
}
}
public void call(){
throw new 런타임 예외 or 상속 받은 예외();
}
예외를 발생키셨으면, 처리하거나, 던져야 하는데, 해당 코드는 처리도, 던지는 작업도 하지 않는 것 처럼 보인다.
허나, Unchecked Exception 은 처리 코드 혹은 throws 키워드를 생략해도 상위 쪽으로 던진다.
예외처리가 필요한 경우 try ~catch 문으로 처리하자.
try {
client.call();
} catch (MyUncheckedException e) {
System.out.println("예외처리 메세지 : " + e.getMessage());
}
System.out.println("정상 로직");
장점
throws 예외 처리를 생략할 수 있다.
단점
컴파일러가 예외 체크를 따로 해주지 않기 때문에, 휴먼 에러로 예외 처리가 누락될 수 있다.