Checked Exception vs Unchecked Exception

0

JAVA

목록 보기
8/18
post-thumbnail

Java의 경우 예외를 Exception 클래스를 통해 관리하고 Exception 종류는 크게 두 가지가 있습니다.

이번 포스팅은 Exception의 두 가지 종류에 대해 정리하고자 합니다.

예외란?

우선 Error와 Exception의 차이에 대해 간단히 알아보도록 하겠습니다.

Error는 시스템에 비정상적인 상황이 생겼을 때 발생
Exception은 개발자가 구현한 로직에서 발생

간단히 정리하자면 위와 같습니다.

Error의 경우 Memory Leak으로 인한 OutOfMemoryError, StackOverFlowError가 가장 대표적인 예시가 될 수 있겠습니다.

예외 클래스 구조도


(출처 : https://howtodoinjava.com/best-practices/java-exception-handling-best-practices/)

위 구조도를 보면 Checked Exception과 Unchecked Exception의 차이를 어느 정도 예상하실 수 있을 겁니다.

바로 RuntimeException 상속 여부입니다.

RuntimeException 상속 O = Unchecked Exception
RuntimeException 상속 X = Checked Exception

그럼 Checked Exception과 Unchecked Exception에 대해 조금 더 자세히 알아보도록 하겠습니다.

Checked Exception

  • Exception 클래스 상속
  • 반드시 예외처리 필요
  • 컴파일 단계에서 Exception 확인 -> 즉, 컴파일 시점에 해결 필요
  • 예외 처리를 하지 않는 경우 컴파일 불가능
  • 대표적인 예시 -> SQLException, IOException 등

Unchecked Exception

  • RuntimeException 클래스 상속
  • 컴파일이 완료되고 실행 과정 중에서 코드 내에 일부 논리 오류로 인하여 발생
  • 즉, 컴파일 단계에서 Exception 확인 불가
  • 애플리케이션 동작 중에 처리가 가능
  • 예외 처리를 하지 않는 경우 애플리케이션 동작 중단
  • 대표적인 예시 -> NullPointerException, IndexOutOfException



Checked Exception, Unchecked Exception 어떠한 경우든 개발자가 적절히 처리하지 않으면 서비스에 문제 발생이 가능합니다.

profile
컴퓨터공학과 + 실무 = 4 + N = 모르는거 ∞ ...

0개의 댓글