250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- DDD
- 이팩티브 자바
- aop
- 자바
- jpa
- 자바예외
- AWS
- SQL쿡북
- 인프런백기선
- 인덱스
- CleanCode
- 클린코드
- MariaDB
- java
- 알고리즘
- AWS RDS
- 자바스터디
- 기술면접
- 인프런김영한
- 자료구조
- 스프링부트와AWS로혼자구현하는웹서비스
- mysql
- react
- vue.js
- 혼공SQL
- 이펙티브 자바
- 알고리즘분석
- 도메인 주도 개발 시작하기
- 이펙티브자바
- 네트워크
Archives
- Today
- Total
기록이 힘이다.
[이펙티브 자바] 아이템 75.예외의 상세 메시지에 실패 관련 정보를 담으라. 본문
728x90
사후 분석을 위해 실패 순간의 상황을 정확히 포착해 예외의 상세 메시지에 담아야 한다.
실패 순간을 포착하려면 발생한 예외에 관여된 모든 매개변수와 필드의 값을 실패 메시지에 담아야 한다.
EX) IndexOutOfBoundsException의 상세 메시지는 범위의 최솟값과 최댓값, 그리고 그 범위를 벗어났다는 인덱스의 값을 담아야 한다. 이 정보는 실패에 관한 많은 것을 알려준다.
예외의 상세 메시지와 최종 사용자에게 보여줄 오류 메시지를 혼동해서는 안 된다. 최종 사용자에게는 친절한 안내 메시지를 보여줘야 하는 반면, 예외 메시지는 가독성보다는 담긴 내용이 훨씬 중요하다.
예를 들어 현재의 IndexOutOfBoundsException 생성자는 String을 받지만, 다음과 같이 구현했어도 좋았을 것이다.(자바9부터 정수 인덱스 값 받는 생성자/자바16부터 long형)


public IndexOutOfBoundsException(int lowerBound, int upperBound, int index)
예외는 실패와 관련한 정보를 얻을 수 있는 접근자 메서드를 적절히 제공하는 것이 좋다(앞의 예에서라면 , lowerBound, upperBound, index정도가 적당할 것이다) 포착한 실패 정보는 검사 예외에서 더 빛을 발한다.
'JAVA' 카테고리의 다른 글
[이펙티브 자바] 아이템77 예외를 무시하지 말라 (0) | 2023.04.30 |
---|---|
[이펙티브 자바] 아이템76 가능한 한 실패 원자적으로 만들라 (0) | 2023.04.30 |
[이펙티브 자바] 74. 메서드가 던지는 모든 예외를 문서화하라 (0) | 2023.04.26 |
[이펙티브 자바] 72. 표준 예외를 사용하라 (0) | 2023.04.24 |
리플렉션보다 인터페이스를 사용하라. (0) | 2023.04.24 |