티스토리 뷰
반응형
예외 상세 메세지
- 예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택 추적 정보(예외 객체의 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를 제공하자는 원칙에 따라 비검사 예외도 상세정보를 알려주는 접근자 메서드를 제공하면 좋다.
반응형
'Java > Effective Java' 카테고리의 다른 글
[Effective Java] 77.예외를 무시하지 말라 (0) | 2022.04.16 |
---|---|
[Effective Java] 76.가능한 한 실패는 원자적으로 만들라 (0) | 2022.04.16 |
[Effective Java] 74.메서드가 던지는 모든 예외를 문서화하라 (0) | 2022.04.16 |
[Effective Java] 73.추상화 수준에 맞는 예외를 던지라 (0) | 2022.04.16 |
[Effective Java] 72.표준 예외를 사용하라 (0) | 2022.04.13 |
댓글