표준 예외 vs 커스텀 예외
- 표준 예외
- 장점 : 익숙한 예외이기 때문에 사용하기 쉽고, 가독성이 높아진다.
- 단점 : 표준 예외로 제공하는 정보가 부족한 경우도 있다.
- 커스텀 예외
- 장점
- 표준 예외보다 많은 정보(예외의 이름, 예외 메시지, 에러코드 등)를 제공할 수 있다.
- 단점
- 커스텀 예외가 지나치게 많아진다면 예외 생성 비용이 비싸진다.
- 직렬화에 따른 부담이 많아질 수 있다.
- 장점
주로 사용되는 표준 예외
예외 | 주요 사용처 |
IllegalArgumentException | 허용하지 않는 값이 인수로 건네졌을 때 (null은 따로 NullPointerException으로 처리) |
IllegalStateException | 객체가 메서드를 수행하지게 적절하지 않은 상태일 때 |
NullPointerException | null을 허용하지 않는 메서드에 null을 건냈을 때 |
IndexOutOfBoundsException | 인덱스가 범위를 넘어섰을 때 |
ConcurrentModificationException | 허용하지 않는 동시 수정이 발견됐을 때 |
UnsupportedOperationException | 호출한 메서드를 지원하지 않을 때 |
- 그 외 고려할만한 표준 예외
- ArithmeticException
- NumberFormatException
- IllegalArgumentException vs IllegalStateException
- 인수 값에 따라 성공/실패가 결정될 때 : IllegalArgumentException
- 인수값이 무엇이든 어차피 실패했을 때 : IllegalStateException
레퍼런스
- 자바의 정석 3판 p.439 ~ 441
- 이펙티브 자바 아이템 72
- Custom Exception을 언제 써야 할까, 테코블
- https://meetup.nhncloud.com/posts/47
'Develop > Java' 카테고리의 다른 글
try-finally와 try-with-resource (0) | 2023.04.05 |
---|---|
추상 클래스와 인터페이스 (0) | 2023.04.04 |
다형성 (0) | 2023.04.04 |
제어자 (0) | 2023.04.04 |
메서드 오버라이딩(Overriding) (0) | 2023.04.04 |