검사 예외 검사 예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 javadoc의 @throw 태그를 사용하여 정확히 문서화 하자 공통 상위 클래스 하나로 뭉뚱그려 선언하는 일은 삼가자 비검사 예외 비검사 예외도 검사 예외처럼 정성껏 문서화 해두면 좋다. 비검사 예외는 일반적으로 프로그래밍 오류를 뜻하는데, 자신이 일으킬 수 있는 오류들을 알려주면 사용하는 입장에서 도움이 된다. 메서드가 던질 수 있는 예외를 각각 @throws 태그로 문서화하되, 비검사 예외는 메서드 선언의 throws 목록에 넣지 말자 검사냐 비검사냐에 따라 사용자가 해야 할 일이 달라지므로 둘을 구분해주는것은 좋다. 현실적으로 불가능할때 비검사 예외는 문서화하기 불가능할 때도 있다. 예컨대 다른 사람이 작성한 클래스를 사용..
문제상황 수행하려는 일과 관련 없어 보이는 예외가 튀어나오면 당황스럽다 메서드가 저수준 예외를 처리하지 않고 바깥으로 전파해버릴 때 종종 일어나는 일이다 해결방법 예외번역(Exception translation) 상위 계층에서는 저수준 예외를 잡아 자신의 추상화 수준에 맞는 예외로 바꿔 던져야 한다 public E get(int index) { ListIterator i = listIterator(index); try { return i.next(); } catch (NoSuchElementException e) { throw new IndexOutOfBoundsException("인덱스: " + index); } } 예외 연쇄(Exception chaning) 예외를 번역 할때 저수준 예외가 디버깅에 ..
표준 예외 재사용의 장점 사용하기 쉽고 익숙하다 읽기 쉽다 메모리 사용량도 줄고 클래스를 적재하는 시간도 적다 대표적인 예외 IllegalArgumentException 가장 많이 재사용되는 예외로, 호출자가 인수로 부적절한 값을 넘길 때 던지는 예외다. (ex. 반복 횟수를 지정하는 매개변수에 음수가 할당될 때) IllegalStateException 이 예외는 대상 객체의 상태가 호출된 메서드를 수행하기에 적합하지 않을 때 주로 던진다. 제대로 초기화되지 않은 객체를 사용하려 할 때 던질 수 있다. NullPointerException 메서드가 던지는 모든 예외를 잘못된 인수나 상태라고 포괄적으로 생각할 수도 있어, IllegalArgument라고 볼 수도 있겠으나, 그 중 특수한 일부는 따로 구분해..
- Today
- Yesterday
- exception
- nosql
- Observer Pattern
- Java
- 부하테스트
- Redis
- JMeter
- jdk11
- Serialize
- reactive
- concurrency
- observable
- Design Pattern
- object
- strategy
- Concurrecy
- 영속성
- jvm
- 메인보드#asrock b650m #조립pc #후기이벤트
- Spring
- gslb
- 디자인패턴
- Effective JAVA
- template method
- LAMBDA
- Serializable
- reactive stream
- iterable
- template
- in-memory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |