체크 예외와 언체크 예외의 차이점은 무엇인가요?

체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception)는 자바의 예외 처리 메커니즘에서 중요한 개념입니다.

이 두 가지 예외는 예외 처리 방식과 컴파일러의 검사 여부에서 차이가 있습니다.

1. 체크 예외 (Checked Exception) - 정의: 컴파일 시점에 예외 처리를 강제하는 예외입니다.

- 특징: - 컴파일러가 메서드 내에서 발생 가능한 체크 예외를 반드시 처리(try-catch 문으로 감싸거나 throws 선언)하도록 요구합니다.

- 주로 외부 자원 접근, 파일 입출력, 네트워크 작업 등에서 발생할 수 있는 예외입니다.

- 예시: IOException, SQLException, ClassNotFoundException - 사용 사례: - 예외가 발생할 가능성이 높고, 호출자가 반드시 예외 상황을 인지하고 처리해야 할 때 사용합니다.

- 코드 예시: ```java public void readFile() throws IOException { FileReader file = new FileReader("file.txt"); // 파일읽기 관련 작업 수행 } ``` 2. 언체크 예외 (Unchecked Exception) - 정의: 컴파일 시점에 예외 처리가 강제되지 않는 예외입니다.

주로 런타임 예외(RuntimeException 및 그 하위 클래스)입니다.

- 특징: - 컴파일러가 처리 여부를 검사하지 않으며, 필요할 경우 선택적으로 try-catch로 처리할 수 있습니다.

- 보통 프로그래밍 오류, 논리적 버그, 잘못된 API 사용 등에서 발생합니다.

- 예시: NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentException - 사용 사례: - 호출자가 반드시 예외를 처리하지 않아도 되고, 예외가 발생하면 주로 버그를 찾아 수정해야 하는 경우에 사용합니다.

- 코드 예시: ```java public int divide(int a, int b) { return a / b; // b가 0이면 ArithmeticException 발생 } ``` 요약 | 구분 | 체크 예외 (Checked Exception) | 언체크 예외 (Unchecked Exception) | |----------------|------------------------------------------|-----------------------------------------| | 상속 구조 | Exception 클래스 직접 상속 (RuntimeException 제외) | RuntimeException 및 그 하위 클래스 | | 컴파일러 검사 | 예외 처리(try-catch 또는 throws) 반드시 필요 | 예외 처리 강제하지 않음 | | 발생 원인 | 외부 자원, 환경 문제 등 | 프로그래밍 오류, 논리적 버그 등 | | 예시 | IOException, SQLException | NullPointerException, IllegalArgumentException | 체크 예외는 개발자가 반드시 예외 상황에 대비하도록 강제하는 반면, 언체크 예외는 프로그래밍 실수 등으로 런타임에 발생하며 선택적으로 처리할 수 있습니다.

상황에 따라 적절한 예외 유형을 사용하여 코드의 안정성과 가독성을 높이는 것이 중요합니다.


관련 게시글

자바에서 병렬 처리를 구현하는 방법은 무엇인가요?

자바에서 병렬 처리는 여러 작업을 동시에 실행하여 프로그램의 성능과 응답성을 향상시키는 기법입니다....

문제 해결 및 면접 질문

문제 해결 및 면접 질문에 관한 글 --- 1. 문제 해결의 중요성 문제 해결 능력은 개인과...

자바에서 중복된 요소를 제거하는 방법은 무엇인가요?

자바(Java)에서 중복된 요소를 제거하는 방법에는 여러 가지가 있습니다. 주로 컬렉션프레임워크를 활용하...

자바 Collections에서 정렬하는 방법은 무엇인가요?

자바 Collections에서 정렬하는 방법에 대해 설명드리겠습니다. 자바에서는 컬렉션(Collection) 자료구조의...

자바의 메모리 누수 문제를 해결하는 방법은 무엇인가요?

자바의 메모리 누수 문제를 해결하는 방법 --- 1. 메모리 누수란? 자바는 가비지 컬렉션(GC)...

팩토리 패턴을 사용하여 주어진 문제를 해결해보세요.

팩토리 패턴을 사용하여 주어진 문제를 해결해보세요. --- 1. 팩토리 패턴이란? 팩토리 패턴...