Throwable
Throwable (오류와 예외의 최상위 클래스)
Throwable 클래스는 Java 언어에서 모든 오류(Error)와 예외(Exception)의 슈퍼클래스입니다. Throwable의 인스턴스(또는 그 하위 클래스의 인스턴스)만이 JVM이나 throw 문에 의해 던져질 수 있습니다.
본문
마찬가지로 catch 절의 인자 타입이 될 수 있는 것도 이 클래스 또는 그 하위 클래스뿐입니다. 예외의 컴파일 타임 검사를 위해, Throwable과 그 하위 클래스 중 RuntimeException이나 Error의 하위 클래스가 아닌 것은 checked exception(검사 예외)으로 취급합니다.
두 하위 클래스인 Error와 Exception은 각각 예외적인 상황이 발생했음을 나타내는 데 관례적으로 사용됩니다. 일반적으로 이 인스턴스는 스택 트레이스(stack trace)를 생성하는 데 사용됩니다.
주요 메서드로는 메시지를 가져오는 getMessage(), 스택 트레이스를 출력하는 printStackTrace(), 원인 예외를 다루는 initCause(), getCause() 등이 있습니다. 모든 오류와 예외 처리가 이 클래스를 통해 이루어집니다.
대표적인 메서드로 상세 메시지를 반환하는 getMessage(), 원인 예외를 반환하는 getCause(), 스택 트레이스를 반환하는 getStackTrace()가 있습니다.
printStackTrace()는 오류 추적에 핵심적인 출력이며, initCause(Throwable)로 예외 체인을 구성할 수 있습니다.
Error는 회복할 수 없는 심각한 문제를, Exception은 처리 가능한 상황을 나타냅니다. 예외 처리 정책에 따라 체크 예외와 언체크 예외를 구분해 사용해야 합니다.