Backend
[매일메일]자바에서 Checked Exception과 Unchecked Exception에 대해서 설명해주세요.
· 4분 읽기
자바에서 Checked Exception과 Unchecked Exception에 대해서 설명해주세요.
1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)
- 프로그램 실행 중에 개발자의 실수로 예기치 않은 상황이 발생했을 때
- 예를들어, 배열의 범위를 벗어난(ArrayIndexOutOfBoundsException), 값이 null이 참조변수를 참조(NullPointerException),
- 존재하지 않는 파일의 이름을 입력(FileNotFoundException) 등등이 있습니다
- 체크 예외 Checked Exception
- RuntimeException의 하위 클래스가 아닌 Exception 클래스의 하위 클래스
- 반드시 에러 처리를 해야하는 특징( try/catch pr throw)을 가지고 있음
- 예를들어,
- 존재하지 않는 파일의 이름을 입력(FileNotFoundException)
- 실수로 클래스의 이름을 잘못 적음(ClassNotFoundException)
- 언체크 예외 Unchecked Exception
- RuntimeException의 하위 클래스
- 체크 예외와는 달리 에러 처리를 강제하지 않음.
- 예를들어,
- 배열의 범위를 벗어난(ArrayIndexOutOfBoundsException)
- 값이 null이 참조변수를 참조(NullPointerException)
- 만약 언체크 예외가 에러 처리를 강제해야 했다면?
- try/catch문을 꼭 사용해야 함 → RuntimeException은 개발자들에 의해 실수로 발생하는 것들이기 때문에 에러를 강제하지 않음
- 에러 Error
- 에러는 시스템에 비정상적인 상황이 발생했을 경우
- 예를들어,
- 메모리 부족(OutofMemoryError)
- 스택오버플로우(StackOverflowError)→ 복구할 수 없는 것.
- 개발자가 예측하기도 쉽지 않고 처리할 수 있는 방법도 없음.
- Checked Exception vs Unchecked Exception 선택
- try-catch로 묶어줄 필요가 있을 경우 → Exception 클래스 사용
- 실행 시 예외를 처리할 수 있는 경우에는 RuntimeException 클래스를 확장해 → Unchecked Exception 사용
2. 정답 확인(매일메일 해설)
3. 최종 정리
- Checked = 컴파일 시점, 강제 처리
- IOException, SQLException
- Unchecked = 런타임, 선택 처리
- NullPointerException, ArrayIndexOutOfBoundsException
- Error = 시스템 문제, 복구 불가
- OutOfMemoryError, StackOverflowError
🔗 참고 URL
댓글
GitHub 계정으로 댓글을 남길 수 있어요.