Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ Item 72 ] 표준 예외를 사용하라 #70

Open
kmswlee opened this issue Jun 12, 2022 · 0 comments
Open

[ Item 72 ] 표준 예외를 사용하라 #70

kmswlee opened this issue Jun 12, 2022 · 0 comments
Assignees
Labels
10장 예외

Comments

@kmswlee
Copy link

kmswlee commented Jun 12, 2022

표준 예외를 사용하라

  • 자바 라이브러리는 대부분 API에서 쓰기에 충분한 수의 예외를 제공한다.

표준 예외를 재사용하면 얻는게 많다.

  • API가 다른 사람이 익히고 사용하기 쉬워진다.
  • 예외 클래스가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적게 걸린다.
예외 주요 쓰임
IllegalArgumentException 허용하지 않는 값이 인수로 건네졌을 때(null은 따로 NullPointerExecption으로 처리)
IllegalStateException 객체가 메서드를 수행하기에 적절하지 않은 상태일 때
NullPointerException null을 허용하지 않는 메서드에 null을 건넸을 때
IndexOutOfBoundsException 인덱스가 범위를 넘어섰을 때
ConcurrentModificationException 허용하지 않는 동시 수정이 발견됐을 때
UnsupportedOperationException 호출한 메서드를 지원하지 않을 때
  • Exception, RuntimeException, Throwable, Error는 직접 재사용하지 말자.
  • 복소수나 유리수를 다루는 객체를 작성한다면 ArithmeticException이나 NumberFormatException을 재사용할 수 있을 것이다.

상황에 부합하다면 항상 표준 예외를 쓰자.

  • API문서를 참고해 그 예외가 어떤 사오항에서 던져지는지 꼭 확인해야 한다.
  • 예외의 이름뿐 아니라 예외가 던져지는 맥락도 부합할 때만 재사용한다.
  • 더 많은 정보를 제공하길 원한다면 표준 예외를 확장해도 좋다. 단, 예외는 직렬화할 수 있다는 사실을 기억하자.
  • 인수 값이 무엇이었든 어차피 실패했을 거라면 IllegalStateException을, 그렇지 않으면 IllegalArgumentException을 던지자.
@kmswlee kmswlee added the 10장 예외 label Jun 12, 2022
@kmswlee kmswlee self-assigned this Jun 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10장 예외
Projects
None yet
Development

No branches or pull requests

1 participant