패스잇
백엔드 개발 · 기초

Java의 Checked Exception과 Unchecked Exception의 차이점과 사용 지침에 대해 설명해주세요.

힌트 · 복구 가능성과 프로그래밍 오류 관점에서 생각해보세요.

컴파일_시점RuntimeException예외_처리_강제예외_처리_선택복구_가능성

모범답안

Checked Exception과 Unchecked Exception은 Java 예외 처리의 두 가지 주요 유형입니다. 가장 큰 차이점은 컴파일 시점에 예외 처리 여부를 확인하는지 여부입니다.

Checked Exception은 Exception 클래스를 상속받으며, 반드시 try-catch 블록으로 처리하거나 throws 구문을 사용하여 메서드에 던져야 합니다. 컴파일러가 이를 강제하므로, 개발자는 예외 발생 가능성을 인지하고 대비해야 합니다. 주로 복구 가능한 상황, 예를 들어 파일이 존재하지 않는 경우 등에 사용됩니다.

Unchecked Exception은 RuntimeException 클래스를 상속받으며, 컴파일러가 예외 처리를 강제하지 않습니다. 즉, try-catch 블록으로 감싸지 않아도 컴파일 에러가 발생하지 않습니다. 주로 프로그래밍 오류, 예를 들어 NullPointerException이나 ArrayIndexOutOfBoundsException과 같은 상황에서 발생합니다. 이러한 예외는 일반적으로 프로그램 로직의 결함으로 인해 발생하므로, 예외 처리보다는 코드 수정으로 해결하는 것이 좋습니다.

Checked Exception은 예외 발생 가능성이 높고 복구 가능한 상황에, Unchecked Exception은 프로그래밍 오류로 인해 발생하며 복구 가능성이 낮은 상황에 사용하는 것이 일반적인 지침입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Java / Spring 면접 질문

← Java / Spring 면접 질문 전체 보기