티스토리 뷰
자바 - Exception - Checked, Unchecked 각각 의미 다시 제대로 정리하기
자바 - Exception - Checked, Unchecked 각각 의미 다시 제대로 정리하기
자바에서의 런타입 오류(예외, 에러) 중 하나인 예외에 대해서 좀 더 알아보고자 한다. 예외는 크게 checked Exception 와 Unchecked Exception 이 있다. \ 둘의 차이를 간단하게 설명하자면,▶ 컴파일 과정
kodong8774.tistory.com
여기서 자바의 Checked Exception과 Unchecked Exception의 차이에 대해서 정리해보았다.
그리고 나는 간단하게
Checked Exception → 컴파일 시점에서 발생하는 예외;
Unchecked Exception → 런타임시점에서 발생하는 예외;
라고 정리했다.
하지만, 현재 내가 보고 있는 책에 의하면 이것은 일반적인 오해이다. ( 잘못되었다 )
간단하게 왜 오해인지 말해보겠다.
둘 다 ( Checked Exception, Unchecked Exception) 런타임 시점에서 발생하기 때문이다.
(솔직히 둘다 런타임에서 발생하는지는 아직 예외들을 많이 만나보지 않았기에 잘모르겠다...)
그렇다면, "진짜" 차이는 뭘까?
바로, try-catch문을 강제해야하느냐, 말아야하느냐 이다.
Checked Exception 은 try-catch문을 강제로 사용해야하고,
Unchecked Exception 은 try-catch문을 사용하지 않아도 되도록 만들 수 있다.
아래는 대표적인 Checked Exception과 Unchecked Exception의 예시이다. ( GPT 형님 )


예를 들어서, nullPointerException (Unchecked Exception)과 은 try-catch 구문을 사용할 수도 있겠지만, 사용하지 않고 우리가 어떻게는 코드를 뚜드려서(?) try-catch 구문을 사용하지 않아도 되도도록 만들 수 있다. 즉, try-catch 구문을 강제하지 않는다.
하지만, FileNotFoundException (Checked Exception)같은 경우에는 우리가 코드를 두드린다고 어떻게 되는게 아니다. 즉, try-catch 구문을 강제하는 것이다.
이렇게 try-catch 구문을 강제하냐 안하냐가 바로 Checked Exception과 Unchecked Exception의 차이이다.
'Java' 카테고리의 다른 글
| 자바 - super, super() 정리, 활용 예제 (0) | 2025.10.27 |
|---|---|
| 자바 - 추상 클래스 개념 정리 (2) | 2025.10.17 |
| 자바 - Dependency 'org.springframework.boot:spring-boot-starter-validation:4.0.0-M3' not found 문제 해결 (0) | 2025.10.10 |
| 자바 - Maven(메이븐), pom.xml 이 뭐지?? (0) | 2025.10.10 |
| 자바 - stream api 정리 ( 자주쓰는 메서드 정도만 ) (0) | 2025.10.07 |