JAVA · 예외처리
checked vs unchecked 예외
checked 예외와 unchecked 예외의 차이, 설계 기준을 이해합니다.
예외처리중급checkedunchecked예외RuntimeException
핵심 설명
checked 예외와 unchecked 예외의 차이, 설계 기준을 이해합니다.
Java code
import java.io.*;
public class CheckedUnchecked {
// Checked — 호출자가 반드시 처리해야 함
// IOException, SQLException, ClassNotFoundException
static String readFile(String path) throws IOException {
// IOException은 checked -> 선언 필수
try (var reader = new BufferedReader(new FileReader(path))) {
return reader.readLine();
}
}
// Unchecked — 처리 강제 안 됨
// RuntimeException 하위: NullPointerException, IllegalArgumentException
static int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("0으로 나눌 수 없음");
}
return a / b;
}
// 설계 기준
// Checked: 호출자가 복구할 수 있는 예외 (파일 없음 -> 대체 파일)
// Unchecked: 프로그래밍 에러 (null 접근, 잘못된 인자)
public static void main(String[] args) {
// checked — 반드시 처리
try {
readFile("test.txt");
} catch (FileNotFoundException e) {
System.out.println("파일 없음: " + e.getMessage());
} catch (IOException e) {
System.out.println("I/O 에러: " + e.getMessage());
}
// unchecked — 선택적 처리
try {
divide(10, 0);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}학습 팁
현대 Java에서는 unchecked 예외를 선호하는 추세입니다. Spring Framework도 대부분 unchecked 예외를 사용합니다.
주의할 점
checked 예외를 무시하기 위해 빈 catch 블록을 작성하지 마세요. 최소한 로그를 남기거나 RuntimeException으로 래핑하세요.
자주 묻는 질문
checked vs unchecked 예외란 무엇인가요?
checked 예외와 unchecked 예외의 차이, 설계 기준을 이해합니다.
checked vs unchecked 예외 학습 시 주의할 점은 무엇인가요?
checked 예외를 무시하기 위해 빈 catch 블록을 작성하지 마세요. 최소한 로그를 남기거나 RuntimeException 으로 래핑하세요.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.