Java
[Java] Checked Exception, Unchecked Exception
Woogie
2022. 1. 24. 15:17
예외(Exception)
- 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등, 정상적인 프로그램의 흐름을 어긋나는 것을 만하며, 상황을 미리 예측하여 핸들링할 수 있다.
- 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
에러(Error)
- 시스템에 무엇인가 비정상적인 사황이 발생한 경우에 사용된다.
- 프로그램 코드에 의해서 수습될 수 없는 심각한오류 (OutOfMemoryError, ThreadDeath, StackOverflowError) 등이 있다.
예외 구분
- Exception은 Checked Exception과 Unchecked Exception으로 구분할 수 있다.
- RuntimeException을 상속하지 않은 클래스는 Checked Exception, 반대로 상속한 클래스는 Unchecked Exception으로 분류할 수 있다.

- RuntimeException은 Exception 클래스의 하위 클래스이기 때문에 Exception의 일종이기도 하지만, 명시적으로 예외 처리를 하지 않아도 되기 때문에 RuntimeException과 이를 상속한 클래스를 조금 특별하게 취급한다.
- 자바에서 예외는 RuntimeException을 상속하지 않고 꼭 처리해야 하는 Checked Exception과 반대로 명시적으로 처리하지 않아도 되는 Unchecked Exception로 구분할 수 있다.