예외 구분 - checked vs unchecked exception

Red Culture·2021년 7월 3일

예외와 에러

-예외: 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 것을 말한다. 그리고 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 예외 상황을 미리 예측하여 핸들링할 수 있다.
-에러: 시스템에 무엇인가 비정상적인 상황이 발생한 경우에 사용된다. 주로 자바 가상머신에서 발생시키는 것이다. 개발자가 미리 예측하여 처리할 수 없기 때문에, 애플리케이션에서 오류에 대한 처리를 신경 쓰지 않아도 된다.

checked vs unchecked

RuntimeException을 상속하지 않는 클래스는 Checked Exception, 반대로 상속한 클래스는 Unchecked Exception으로 분류할 수 있다.

자바에서 예외는 RuntimeException을 상속하지 않고 꼭 처리해야 하는 Checked Exception과 반대로 명시적으로 처리하지 않아도 되는 Unchecked Exception로 구분할 수 있다.

예외 처리 방법

1) 예외 복구 - try~catch로 직접 예외를 처리하는 방법
2) 예외 처리 회피 - 예외 처리를 직접하지 않고 호출한 쪽으로(메서스 밖으로 예외를 던지는) 던지는 방법 (~~ throws Exception)
-> 무책임하게 그냥 예외를 던지는 것은 좋지 않다.
3) 예외 전환 - 예외 처리 회피와 비슷하게 메서드 밖으로 예외를 던지지만, 명확한 의미로 전달하기 위해 적합한 의미를 가진 예외로 변경한다. (~~ throws Exception, try~catch)

*참고 자료
https://madplay.github.io/post/java-checked-unchecked-exceptions

profile
자기 개발, 학습 정리를 위한 블로그

0개의 댓글