기본 콘텐츠로 건너뛰기

라벨이 throws인 게시물 표시

자바 Checked Exception vs Unchecked Exception: 언제 복구하고 언제 코드부터 고칠까

자바 Checked Exception vs Unchecked Exception: 언제 복구하고 언제 코드부터 고칠까 빠른 답 Checked Exception 은 호출자가 재시도, 대체 경로, 사용자 안내 같은 대응을 선택할 수 있을 때 API 계약으로 드러내기 좋습니다. Unchecked Exception 은 잘못된 값, 잘못된 호출 순서, 깨진 상태처럼 코드 쪽 수정이 필요한 문제를 표현하는 경우가 많습니다. 둘 다 실제로는 실행 중에 발생합니다. 차이는 예외가 아니라 컴파일러가 처리 여부를 강제하느냐에 있습니다. Error 는 일반 애플리케이션 로직에서 복구 대상으로 보기보다, JVM이나 프로세스 수준의 심각한 문제로 보는 편이 가깝습니다. 목차 한눈에 비교 시간 흐름으로 이해하기 왜 둘 다 Exception인데 처리 방식은 다를까 Error와 Exception의 차이 실전 코드와 출력 예시로 보기 언제 무엇을 선택할까 커스텀 예외는 어디에 둘까 자주 틀리는 지점 한눈에 비교 검사 시점 Checked Exception 은 컴파일 시점에 처리 여부를 검사하고, Unchecked Exception 은 컴파일러가 강제하지 않습니다. 타입 계층 checked는 보통 Exception 하위 타입 중 RuntimeException 이 아닌 예외이고, unchecked는 RuntimeException 과 그 하위 타입입니다. 의미 checked는 외부 조건 때문에 작업이 실패할 수 있음을 드러내고, unchecked는 값 오류나 상태 불일치처럼 코드 전제가 깨졌음을 드러내는 경우가 많습니다. 호출자 책임 checked는 try-catch 또는 throws 로 책임을 명시해야 하고, unchecked는 필요할 때만 잡으면 됩니다. 관찰 가능한 결과 checked를 처리하지 않으면 컴파일 오류가 보이고, unchecked는 컴파일은 되지만 실행 중 스택 트레이스로 드러납니다. 복구 방향 checked는 재시도, 기본값 사용, 다른 자원 선택으로 이어지기 쉽...