Checked Exception, Unchecked Exception

지인호·2022년 1월 5일
0

TIL

목록 보기
7/28
post-thumbnail

핸들링을 강요하지 않는 동적인 예외, Unckecked Exception

Error

시스템에 비정상적인 상황이 발생했을 경우 발생한다.

메모리 부족(OutOfMemoryError) 이나 스택 오버 플로우(StackOverflowError) 같이 복구 불가능한 것을 말한다.

에러는 개발자가 예측하기도 쉽지 않을 뿐더러 처리할 방법 또한 없다.

Exception

프로그램 실행중, 예기치 않은 상황이 발생했을 경우 발생한다.

배열의 범위를 벗어날 경우(ArrayIndexOutOfBoundsException) 나 값이 null 인 객체 내부의 참조변수(field) 를 참조하여 할 경우 (NullPointerException) 발생한다.

이러한 예외는

  • Checked Exception
  • Unchecked Exception

으로 나뉜다.

CheckedException

반드시 처리해야하는 예외 상황에 발생시킨다.

Exception 클래스의 하위클래스이면서, RuntimeException 의 하위클래스가 아닌 형태로 존재한다.

즉, RuntimeException 으로 치환될 수 없는 Exception 의 하위클래스 이다.

존재하지 않는 파일의 이름을 입력(FileNotFoundException)하였을 때 같이, 추가적인 핸들링이 필요할 경우 발생한다.

UnckeckedException

굳이 추가적으로 처리하지 않아도 되는 예외상황에 발생시킨다

따라서 핸들링을 강제하지 않는다

RuntimeException 의 하위클래스로 구현된다.

배열의 범위를 벗어난(ArrayIndexOutOfBoundsException) 인덱스로 배열을 호출하였을 경우 같이 개발자의 실수로 인한 예외상황에 발생한다.

또한, 모든 Exception 과 Error 는 사용자가 Exception, Error, RuntimeError 를 상속한 클래스를 작성함으로서 Customizing 할 수 있다.

profile
테오의 스프린트 17기 퍼실리테이터

0개의 댓글