IT/JAVA
CheckedException 과 unCheckedException 설명
밥알이
2024. 2. 22. 16:47
자바로 개발을 하다 보면 CheckedException 과 unCheckedException에 대한 이야기가 나오구 해당 Exception으로 인하여 트랜잭션 관리와도 연결되게 됩니다.
위 두개의 Exception용어가 어떤 차이가 있는지 정리를 했습니다.
Checked Exception (확인된 예외)
- Checked Exception은 컴파일러가 예외 처리를 강제하는 예외입니다. 이 예외들은 주로 외부 리소스나 외부 시스템과의 상호 작용 시 발생할 수 있습니다.
- 메서드가 Checked Exception을 발생시키면 해당 메서드를 호출한 곳에서 예외를 처리해야 합니다. 이는 예외를 try-catch 블록으로 처리하거나, throws 절을 통해 예외를 호출자에게 전파하여 처리할 수 있습니다.
- Checked Exception은 코드 안정성을 높이는 데 도움을 줍니다. 컴파일 시점에서 예외 처리를 강제하므로 프로그래머가 예외 상황을 인지하고 적절히 대응할 수 있게 됩니다.
Unchecked Exception (확인되지 않은 예외)
- Unchecked Exception은 컴파일러가 예외 처리를 강제하지 않는 예외입니다. 프로그래머가 명시적으로 예외 처리를 하지 않아도 됩니다.
- 주로 프로그램의 오류나 잘못된 사용으로 인한 예외 상황을 나타냅니다. 대부분의 경우 이러한 예외는 개발자의 코드 수정을 통해 방지할 수 있습니다.
- Unchecked Exception은 주로 RuntimeException을 상속받는 예외로, 프로그래머의 실수나 프로그램의 논리 오류에 의해 발생합니다.
예제코드
package jpabook.jpashop;
import java.io.File;
import java.io.FileReader;
import java.util.concurrent.ExecutionException;
/**
* CheckedExcepition
* unCheckedException
*/
public class ExceptionExample {
// Checked Exception 발생 메소드
public void checkedExceptionMethod() throws Exception {
File file = new File("example.txt");
FileReader fr = new FileReader(file);
System.out.println(fr);
}
// Unchecked Exception 발생 메소드
public void uncheckedExceptionMethod() {
int[] arr = new int[5];
// 배열범위를 초과하여 unckecked Exception 발생
System.out.println(arr[10]);
}
public static void main(String[] args) {
ExceptionExample example = new ExceptionExample();
try {
//checked Exception 실행
example.checkedExceptionMethod();
} catch (Exception e) {
System.out.println("Checked Exception 발생: " + e.getMessage());
}
// Unchecked Exception 실행
try {
example.uncheckedExceptionMethod();
} catch (Exception e) {
System.out.println("Unchecked Exception 발생: " + e.getMessage());
}
}
}