개발괴발/JAVA

Study #2 Checked/Unchecked Exception, Error

YUUUN! 2022. 3. 22. 11:05

Checked / Unchecked Exception

자바의 예외는 크게 3가지로 나뉘어 집니다.

  • Error
  • Checked Exception
  • UncheckedException

https://devlog-wjdrbs96.tistory.com/351

에러 (Error) 

에러는 시스템이 비정상적일 경우에 발생합니다. 
예를들어 메모리 부족(OutofMemoryError), 스택오버플로우(StackOverflowError) 같이 복구할 수 없는 상황을 말합니다.
이런 에러는 개발자가 예측하기 어렵고, 처리할 수 있는 방법도 없습니다.

 

예외 (Expception)

예외는 개발자의 실수로 예기치않은 상황이 발생했을 때 입니다. 
예를들어 배열 범위를 벗어나거나(ArrayIndexOutOfBoundsException), 값이 Null인 변수를 참조 (NPE: NullPointerException), 존재하지 않는 파일의 이름을 입력 (FileNotFoundException) 등이 있습니다. 
이러한 것들은 프로그램에 심각한 오류는 아니며, 개발자 선에서 처리할 수 있는 오류입니다.

예외에는 2가지로 나눌 수 있습니다.

  • Checked Exception
  • UnChecked Exception

위 자바 에러클래스의 계층구조를 보면 RuntimeException의 하위 클래스들을 Unchecked Exception이라고 하며, 
RuntimeException을 제외한 Exception의 하위 클래스들을 Checked Exception이라고 합니다.

 

체크 예외 (Checked Exception)

체크 예외는 RuntimeException을 제외한 Exception의 하위클래스들 입니다.
특징은 반드시 에러처리를 해야하는 특징을 가지고 있습니다.

  • 존재하지 않는 파일의 이름을 입력(FileNotFoundException)
  • 존재하지 않는 클래스의 이름을 입력(ClassNotFoundException)

위와 같은 경우는 대부분 컴파일러에서 걸러지기 때문에 쉽게 발견할 수 있습니다.

 

언체크 예외 (Unchecked Exception)

언체크 예외는 RuntimeException의 하위클래스를 의미합니다.
체크예외와 달리 에러처리를 강제하지 않으며, 말 그대로 실행 중 (Runtime) 발생할 수 있는 예외를 의미합니다.

  • 배열의 범위를 벗어남 (ArrayIndexOutOfBoundsException)
  • 값이 Null인 변수를 참조함 (NPE: NullPointerException)

위 예외들은 실제 실행 중에 프로세스가 진행되어야 발생하므로, 발견하기 쉽지 않습니다.

 

'개발괴발 > JAVA' 카테고리의 다른 글

Study #1 로그 로깅  (0) 2021.06.07