Java에서 사용자 정의 예외를 처리할 때, Exception과 RuntimeException을 상속하여 구현하는 방법 차이?
->
Exception : Checked Exception 다룰때
RuntimeException : Unchecked Exception 다룰때
Exception
Checked Exception : 강제로 처리해야하는 예외 (IOException이나 SQLException 등)
예외를 던지거나 처리 할 때 :
try-catch 구문을 사용
메서드 선언에서 throws 키워드를 사용하여 호출하는 쪽에서 예외를 처리하거나 선언
예시 코드
public class MyCheckedException extends Exception {
Ο public MyCheckedException(String message) {
Ο Ο super(message);
Ο }
}
// execute
public void someMethod() throws MyCheckedException {
Ο throw new MyCheckedException("An error occurred");
}
RuntimeException
Unchecked Exception : 예외를 처리하거나 선언할 필요 없이 발생 가능 (NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentException 등)
예시 코드
public class MyUncheckedException extends RuntimeException {
Ο public MyUncheckedException(String message) {
Ο Ο super(message);
Ο }
}
// execute
public void someMethod() {
Ο throw new MyUncheckedException("Something went wrong");
}