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
- 혼공SQL
- 인덱스
- AWS
- react
- 인프런백기선
- 알고리즘
- 자료구조
- 인프런김영한
- 알고리즘분석
- 네트워크
- 도메인 주도 개발 시작하기
- 이펙티브자바
- SQL쿡북
- AWS RDS
- vue.js
- 기술면접
- CleanCode
- 이팩티브 자바
- 자바예외
- 이펙티브 자바
- 스프링부트와AWS로혼자구현하는웹서비스
- 자바
- MariaDB
- java
- mysql
- 클린코드
- 자바스터디
- DDD
- aop
- jpa
Archives
- Today
- Total
기록이 힘이다.
[이펙티브 자바] 72. 표준 예외를 사용하라 본문
728x90
표준 예외를 재사용하면 얻는 게 많다. 그중 최고는 여러분의 API가 다른 사람이 익히고 사용하기 쉬워진다는 것이다. 가장 많이 재사용되는 예외는 IllegalArgumentException이다. NullpointerException, IndexOutOfBoundsException
ConcurrentModificationException은 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정하려 할 때 던진다. UnsupportedOperationException은 클라이언트가 요청한 동작을 대상 객체가 지원하지 않을 때 던진다.
Exception, RuntimeException, Throwable, Error는 직접 재사용하지 말자.이 클래스들은 추상 클래스라고 생각하길 바란다. 이 예외들은 다른 예외들의 상위 클래스이므로, 즉 여러 성격의 예외들을 포괄하는 클래스이므로 안정적으로 테스트할 수 없다.
예외 주요쓰임
IllegalArgumentException | 허용하지 않는 값이 인수로 건네졌을 때(null은 따로 NullpointerException으로 처리) |
IllegalStateException | 객체가 메서드를 수행하기에 적절하지 않은 상태일 때 |
NullpointerException | null을 허용하지 않는 메서드에 null을 건넸을 때 |
IndexOutOfBoundsException | 인덱스가 범위를 넘어섰을 때 |
ConcurrentModificationException | 허용하지 않는 동시 수정이 발견됐을 때 |
UnsupportedOperationException | 호출한 메서드를 지원하지 않을 때 |
상황에 부합한다면 항상 표준 예외를 재사용하자. 이때 API 문서를 참고해 그 예외가 어떤 상황에서 던져지는지 꼭 확인해야 한다. 예외의 이름뿐 아니라 예외가 던져지는 맥락도 부합할 때만 재사용한다.
인수 값이 무엇이었든 어차피 실패했을 거라면 IllegalStateException, 그렇지 않으면 IllegalArgumentException
'JAVA' 카테고리의 다른 글
[이펙티브 자바] 아이템 75.예외의 상세 메시지에 실패 관련 정보를 담으라. (0) | 2023.04.29 |
---|---|
[이펙티브 자바] 74. 메서드가 던지는 모든 예외를 문서화하라 (0) | 2023.04.26 |
리플렉션보다 인터페이스를 사용하라. (0) | 2023.04.24 |
[이펙티브자바] 59. 라이브러리를 익히고 사용하라 (0) | 2023.04.21 |
[이펙티브 자바] 6장 열거 타입과 애너테이션 (0) | 2023.04.21 |