티스토리 뷰
표준 예외 재사용의 장점
- 사용하기 쉽고 익숙하다
- 읽기 쉽다
- 메모리 사용량도 줄고 클래스를 적재하는 시간도 적다
대표적인 예외
- IllegalArgumentException
- 가장 많이 재사용되는 예외로, 호출자가 인수로 부적절한 값을 넘길 때 던지는 예외다. (ex. 반복 횟수를 지정하는 매개변수에 음수가 할당될 때)
- IllegalStateException
- 이 예외는 대상 객체의 상태가 호출된 메서드를 수행하기에 적합하지 않을 때 주로 던진다. 제대로 초기화되지 않은 객체를 사용하려 할 때 던질 수 있다.
- NullPointerException
- 메서드가 던지는 모든 예외를 잘못된 인수나 상태라고 포괄적으로 생각할 수도 있어, IllegalArgument라고 볼 수도 있겠으나, 그 중 특수한 일부는 따로 구분해서 써야한다. null 값을 허용하지 않는 메서드에 null을 건네면 관례상 NullPointerException을 던진다.
- IndexOutOfBoundsException
- NullPointerException과 유사하게 특수한 예로, 어떤 시퀀스의 허용 범위를 넘는 값을 건넬 때, IndexOutOfBoundsException을 던진다.
- ConcurrentModificationException
- 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정하려 할 때 던진다. (사실 동시 수정을 확실히 검출할 수 있는 안정된 방법은 없어, 이 예외는 문제가 생길 가능성을 알려주는 정도의 역할로 쓰인다)
- UnsupportedOperationException
- 이 예외는 클라이언트가 요청한 동작을 대상 객체가 지원하지 않을 때 던진다. 대부분 객체는 자신이 정의한 메서드를 모두 지원하니 흔히 쓰이는 예외는 아니다. 보통은 구현하려는 인터페이스의 메서드 일부를 구현할 수 없을 때 쓰는데, 예를 들어 원소를 넣을 수만 있는 List 구현체에 대고 누군가 remove 메서드를 호출하면 이 예외를 던질 것이다.
Exception,RuntimeException,Throwable,Error는 직접 재사용하지 말자
- 이 클래스들은 추상 클래스라고 생각하길 바란다. 이 예외들은 다른 예외들의 상위 클래스이므로,즉 여러 성격의 예외들을 포괄하는 클래스이므로 안정적으로 테스트할 수 없다.
'Java' 카테고리의 다른 글
[Effective Java] 메서드가 던지는 모든 예외를 문서화하라 (0) | 2021.08.07 |
---|---|
[Effective Java] 추상화 수준에 맞는 예외를 던지라 (0) | 2021.08.07 |
[Effective Java] 필요 없는 검사 예외 사용은 피하라 (0) | 2021.08.04 |
[Effective Java] 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라 (0) | 2021.08.04 |
[Effective Java] 예외는 진짜 예외 상황에만 사용하라 (0) | 2021.08.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Today
- Yesterday
링크
TAG
- reactive stream
- Observer Pattern
- gslb
- reactive
- Spring
- exception
- template method
- 메인보드#asrock b650m #조립pc #후기이벤트
- in-memory
- JMeter
- Design Pattern
- observable
- Serialize
- Java
- jdk11
- concurrency
- object
- 디자인패턴
- LAMBDA
- Effective JAVA
- iterable
- nosql
- Redis
- Serializable
- jvm
- Concurrecy
- strategy
- 영속성
- template
- 부하테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함