[Java] Throwable

1039 단어 JavaJava
java.lang.Throwable
extends Object
implements Serializable

Throwable 클래스는 모든 에러/예외에 대한 슈퍼클래스이다.
이 클래스의 인스턴스(or 슈퍼 클래스의 인스턴스)만이

  • JVM이나 throw 구문으로 throw될 수 있다.
  • catch의 매개변수가 될 수 있다.

오류/예외에 대한 인스턴스는 예외적인 상황이 발생했음을 알려주는 데 사용된다.
이 인스턴스들은 관련된 정보(스택 트레이스 데이터)를 포함하기 위해 예외적인 상황에서 새로 생성된다.

throwable은

  • 스레드의 실행 스택 스냅샷 포함
  • 에러 정보에 대한 메세지 스트링 포함
  • 해당 throwable이 일으킬 수 있는 다른 throwable의 원인 포함
    -> throwable 전파 억제 가능
    • 이 인과 정보의 기록을 chained exception 기능이라고 함
      - chained exception: 원인이 그 자체로 원인을 가질 수 있고.. 그렇게 발생하는 예외의 '체인'으로 이어질 수 있음
      -> 원인을 가질 수 있는 이유 1. throwable 클래스가 하위 계층 추상화 위에 구축되고, 상위 계층에서의 작업은 하위 계층에서의 장애로 실패하기 때문이다.
      -> 이유 2. throw하는 메소드가 직접 throw하는 것을 허용하지 않는 범용 목적 인터페이스에 적합해야 하기 때문이다.

참고
https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html

좋은 웹페이지 즐겨찾기