티스토리 뷰

반응형

예외 상세 메세지

  • 예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택 추적 정보(예외 객체의 toString 메서드를 호출)를 자동으로 출력한다.
  • 그 정보로부터 실패원인을 분석해야하기 때문에 예외의 toString 메서드에 실패 원인에 관한 정보를 가능한 많이 담아 반환해야한다.
  • 발생한 예외에 관련된 모든 매개변수,필드 값을 담아야함 → 무엇을 고쳐야 할지 분석하는 데 도움이 됨
  • 장황할 필요는 없고, 예외 원인을 파악하기 쉬운 메세지가 좋다.

 

public IndexOutOfBoundsException(int lowerBound, int upperBound,
                                     int index) {
    super(String.format(
            "최솟값: %d, 최댓값: %d, 인덱스: %d",
            lowerBound, upperBound, index));

    //프로그램에서 사용할 수 있도록 실패 정보를 저장
    this.lowerBound = lowerBound;
    this.upperBound = upperBound;
    this.index = index;
}
  • 필요한 실패 관련 정보를 아예 저장해두는 것도 좋다.
  • 이런 실패 관련 정보를 얻을 수 있는 접근자 메서드를 적절히 제공하는 것이 좋다. 이는 검사 예외에서 빛을 발함 (예외 상황을 복구하는 데 유용하기 때문)
  • toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자는 원칙에 따라 비검사 예외도 상세정보를 알려주는 접근자 메서드를 제공하면 좋다.
반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday