본문 바로가기
개발 공부/Java

자바 예외 처리 정리 - Checked, Unchecked, Error

by 코딩호야 2025. 5. 28.

1. Throwable

- 자바에서 모든 예외와 에러의 최상위 클래스

 

2. Exception (예외)

프로그램 실행 중 발생할 수 있는 예측 가능한 문제

-> 대부분 개발자가 처리할 수 있음

 

* Checked Exception (필수로 체크 해야하는 예외 - 체크 예외)

 - 컴파일러가 예외 처리 강제

 - 예 : IOException( 예: 존재하지 않는 파일을 열려고 할 때 ), SQLException( 예: 잘못된 SQL 문을 실행하거나 DB 연결이 끊겼을 때 )

 - 외부 환경 문제 (파일, 네트워크)

 - 반드시 try-catch 또는 throws 처리

 

* Unchecked Exception (비체크 예외)

 - 컴파일러가 예외 처리 강제하지 않음

 - 예 : NullPointerException(Null 객체 참조할 때 오류), IndexOutOfBoundsException(배열이나 리스트 유효 범위를 벗어난 인덱스에 접근하려 할 때 발생)

 - 주로 개발자의 실수

 - 런타임 중 발생

 

 

3. Error (에러)

JVM이나 시스템에서 발생하는 치명적 오류

-> 개발자가 복구하거나 처리하지 않음

 

- 예: OutOfMemoryError(JVM의 힙 메모리가 부족해 객체를 더 이상 생성할 수 없을 때 발생), StackOverFlowError(예:무한 루프 재귀 함수 호출)

- 대부분 프로그램 강제 종료

 

 

비교 표

Checked Exception

필수

컴파일 시점

가능

IOException, SQLException

Unchecked Exception

선택

런타임

보통 불가

NullPointerException, IndexOutOfBoundsException

Error 처리 안 함 런타임 불가 OutOfMemoryError, StackOverflowError

'개발 공부 > Java' 카테고리의 다른 글

해시 정리 (Hash)  (1) 2025.05.29
자바 GC 정리 ft. JIT 컴파일러  (1) 2025.05.28
[Java] JVM 메모리 구조  (0) 2024.11.10
SOLID - 객체 지향 설계의 5원칙  (0) 2024.11.01
도서 관리 프로그램  (4) 2022.08.18