[v.0.0] Java에서 Exception과 Error의 차이와 명명 이유

Java에서 Exception과 Error의 차이와 명명 이유

Java에서 Exception이라는 용어를 사용한 이유는 단순한 문법의 선택이 아니라 철학적으로 오류를 “예외적인 상황(exceptional situation)“으로 분류하려는 시도에 뿌리를 두고 있습니다. 이 개념은 C++ 등 객체지향 언어에서 비롯되었고, Java는 이를 명시적 언어 설계 요소로 적극 도입했습니다.


🔍 Java가 Exception이라는 용어를 채택한 배경

1. 예외(Exception)와 오류(Error)의 구분

Java에서는 예외(Exception)와 오류(Error)를 논리적으로 명확히 구분합니다.

구분설명Java 클래스
Exception애플리케이션에서 예측 가능한 문제, 복구 가능IOException, SQLException, NullPointerException
Error시스템 수준의 복구 불가능한 심각한 문제OutOfMemoryError, StackOverflowError

2. 예외는 비정상적이지만 제어 가능한 흐름

  • 예외(Exception)는 일반적이지 않은 제어 흐름을 나타냅니다.
  • Java는 try-catch-finally를 통해 예외 발생 시에도 프로그램 흐름을 유지하면서 처리할 수 있도록 지원합니다.
  • 이는 코드 실행 중 조건이 깨졌을 때의 대응 절차를 정의할 수 있게 합니다.

3. Exception vs. Error: 철학

  • Exception: 프로그래머가 처리할 수 있는 예외 상황
  • Error: JVM 또는 시스템 레벨의 문제로, 처리하지 않기를 기대

📚 용어 비교 (Java vs Swift vs Kotlin)

언어주요 용어처리 방식특징
JavaException, Errortry-catch체크 예외/언체크 예외 구분, 명확한 계층 구조
SwiftError (Protocol)try-catch, throws대부분 enum, 구조체 기반, 복구 중심
KotlinExceptiontry-catchJava 계승, 체크 예외 없음

✨ 결론

Java에서 Exception이라는 용어는 오류를 논리적으로 설명 가능한 ‘예외적 사건’ 으로 정의하며, 개발자가 이를 정제된 방식으로 처리하도록 유도하기 위해 선택된 개념입니다.
반면 Error는 시스템적 결함을 나타내며 정상적인 흐름에서의 개입을 금지하는 철학을 따릅니다.

Built with Hugo
Theme Stack designed by Jimmy