체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception)의 주요 차이는 예외 처리의 강제 여부에 있습니다.
체크 예외는 RuntimeException 클래스를 상속하지 않은 예외로, 개발자가 이를 처리하도록 강제합니다. 예시로는 FileNotFoundException, RuntimeException 등이 있습니다.
- 장점
- 컴파일 시간에 강제로 예외 처리를 유도하여 안정성을 높입니다.
- 예외 처리를 강제함으로써 코드의 가독성과 유지보수성이 향상될 수 있습니다.
- 단점
- 너무 많은 예외 처리 코드가 필요할 수 있어 코드의 복잡성이 증가할 수 있습니다.
- 예외 처리를 강제함으로써 개발자의 부담이 커질 수 있습니다.
체크 예외가 발생할 수 있는 코드는 try-catch 블록으로 감싸거나, 해당 예외를 호출한 메소드로 던지도록 선언(throw)해야 합니다.
반면, 언체크 예외는 RuntimeException 클래스를 상속하는 예외로, 개발자에 의해 처리될 필요가 없습니다. 예시로는 ArrayIndexOutOfBoundsException, NullPointerException 등이 있습니다.
- 장점
- 명시적인 예외 처리를 강제하지 않아 개발자가 더 유연하게 코드를 작성할 수 있습니다.
- 단점
- 미리 예측하지 못한 상황에서 발생하는 예외에 대한 대비가 어렵습니다.
- 예외 처리를 강제하지 않기 때문에 프로그램의 안정성이 감소할 수 있습니다.
언체크 예외는 명시적인 예외 처리를 강제하지 않으므로, 개발자의 판단에 따라 try-catch 블록으로 처리할 수 있지만, 처리를 강제하지 않습니다.
Q1. 오류와 예외의 차이에 대해 설명해주세요.
오류(Error)는 시스템에서 비정상적인 상황이 발생할 경우 나타나며, 예외(Exception)는 개발자가 구현한 로직에서 발생합니다. 예외는 미리 예측하여 처리할 수 있으며, Checked Exceptoin과 Unchecked Exception으로 구분됩니다.
Q2. 체크 예외와 언체크 예외의 차이에 대해 설명해주세요.
체크 예외는 RuntimeException을 상속하지 않은 예외로, 컴파일 시간에 확인되며 반드시 명시적으로 처리되어야 합니다. 반면, 언체크 예외는 RuntimeException을 상속한 예외로, 명시적인 처리가 강제되지 않습니다.
Q3. 체크 예외와 언체크 예외를 처리하는 방법에 대해 설명해주세요.
체크 예외는 try-catch 블록으로 감싸거나 해당 예외를 호출한 메소드로 던지도록 선언해야 합니다. 반면, 언체크 예외는 명시적인 처리가 강제되지 않으며, 개발자의 판단에 따라 선택적으로 처리할 수 있습니다.
참고 자료
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 인터페이스와 추상 클래스의 차이 (1) | 2024.02.01 |
---|---|
[Java] 클래스, 객체, 인스턴스의 차이 (0) | 2024.01.29 |
[Java] OOP의 5가지 원칙 (SOLID) (0) | 2024.01.25 |
[Java] OOP의 4가지 특징 (0) | 2024.01.23 |
[Java] 자바 접근 제어자의 유형과 특징 (0) | 2024.01.22 |