Open yejin9858 opened 1 year ago
예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택추적 정보를 자동으로 출력한다.
⇒
예외의 toString 메서드에 실패 원인에 관한 정보를 가능한 한 많이 담아 반환하는 일은 아주 중요하다.
사후 분석을 위해 실패 순간의 상황을 정확히 포착해 예외의 상세 메시지에 담자.
실패 순간을 포착하려면 발생한 예외에 관여된 모든 매개변수와 필드의 값을 실패 메세지에 담아야한다.
ex) IndexOutOfBoundsException
범위의 최댓값, 최솟값, 범위를 벗어난 인덱스의 값을 담으면 좋다.
하지만 실제로는 범위를 벗어난 인덱스만 제공하고 있긴 하다.
+) 하지만 비밀번호를 담지는 말자. 보안에 주의
스택 추적이 있으므로 관련 데이터를 모두 담으면 좋지만 너무 장황할 필요는 없다. 어차피 관련 문서와 소스코드를 찾아봐야 한다.
예외의 상세 메시지와 최종 사용자에게 보여줄 오류 메시지를 혼동해서는 안된다
자바 라이브러리에서 이 조언을 적극 수용하지는 않지만, 저자는 강력히 권장한다.
예외는 실패와 관련된 정보를 얻을 수 있는 접근자 메서드를 적절히 제공하는 것이 좋다.(Item 70 참고)
포착한 실패 정보는 예외 상황을 복구하는 데 유용할 수 있으므로 접근자 메서드는 비검사 예외보다는 검사 예외에서 더 빝을 발한다.
하지만, ‘toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자’는 일반원칙을 따른다는 점에서 비검사 예외라도 상세 정보를 알려주는 접근자 메서드를 제공하는 것을 권장한다.
예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택추적 정보를 자동으로 출력한다.
⇒
예외의 toString 메서드에 실패 원인에 관한 정보를 가능한 한 많이 담아 반환하는 일은 아주 중요하다.
사후 분석을 위해 실패 순간의 상황을 정확히 포착해 예외의 상세 메시지에 담자.
실패 순간을 포착하려면 발생한 예외에 관여된 모든 매개변수와 필드의 값을 실패 메세지에 담아야한다.
ex) IndexOutOfBoundsException
범위의 최댓값, 최솟값, 범위를 벗어난 인덱스의 값을 담으면 좋다.
하지만 실제로는 범위를 벗어난 인덱스만 제공하고 있긴 하다.
+) 하지만 비밀번호를 담지는 말자. 보안에 주의
스택 추적이 있으므로 관련 데이터를 모두 담으면 좋지만 너무 장황할 필요는 없다. 어차피 관련 문서와 소스코드를 찾아봐야 한다.
예외의 상세 메시지와 최종 사용자에게 보여줄 오류 메시지를 혼동해서는 안된다
자바 라이브러리에서 이 조언을 적극 수용하지는 않지만, 저자는 강력히 권장한다.
예외는 실패와 관련된 정보를 얻을 수 있는 접근자 메서드를 적절히 제공하는 것이 좋다.(Item 70 참고)
포착한 실패 정보는 예외 상황을 복구하는 데 유용할 수 있으므로 접근자 메서드는 비검사 예외보다는 검사 예외에서 더 빝을 발한다.
하지만, ‘toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자’는 일반원칙을 따른다는 점에서 비검사 예외라도 상세 정보를 알려주는 접근자 메서드를 제공하는 것을 권장한다.