Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java) 오류(Error)와 예외(Exception)의 차이점 한눈에 정리

자바 프로그래밍에서 오류(Error)예외(Exception)는 모두 프로그램 실행 중 발생하는 문제 상황을 의미하지만, 성격과 처리 방식에서 중요한 차이가 있습니다. 이 글에서는 두 개념의 핵심 차이점을 명확하게 정리해 드립니다.

오류(Error)란?

  • 확인되지 않은(Unchecked) 타입으로 분류됩니다.
  • java.lang.Error 클래스에 속합니다.
  • 발생한 이후 복구할 수 없습니다.
  • 컴파일 시점에는 발생하지 않으며, 런타임(Runtime)에만 발생합니다.
  • 대표적인 오류 예시는 다음과 같습니다.
    • OutOfMemoryError: JVM의 힙 메모리가 부족할 때 발생
    • IOError: 입출력 작업에서 심각한 문제가 생겼을 때 발생

예외(Exception)란?

  • 확인된(Checked) 예외와 확인되지 않은(Unchecked) 예외로 나뉩니다.
  • java.lang.Exception 클래스에 속합니다.
  • 적절한 처리를 통해 복구가 가능합니다.
  • 컴파일 시점과 런타임 양쪽 모두에서 발생할 수 있습니다.
  • 대표적인 예외 예시는 다음과 같습니다.
    • NullPointerException: null 참조 객체에 접근할 때 발생하는 런타임 예외
    • SQLException: 데이터베이스 작업 중 문제가 생길 때 발생하는 확인된 예외

오류와 예외 비교 요약

구분오류(Error)예외(Exception)
소속 클래스java.lang.Errorjava.lang.Exception
복구 가능 여부복구 불가능복구 가능
발생 시점런타임에만 발생컴파일 시점 및 런타임
처리 방식애플리케이션에서 직접 처리하지 않음try-catch 또는 throws로 처리

마무리

오류는 주로 JVM 수준의 심각한 문제로, 애플리케이션 코드에서 직접 처리하기 어렵습니다. 반면 예외는 개발자가 try-catch 블록 등을 통해 적절히 대응하고 복구할 수 있습니다. 따라서 자바 개발에서는 예외 처리 전략을 잘 세우는 것이 안정적이고 견고한 프로그램을 만드는 핵심이라 할 수 있습니다.