아이템72. 표준 예외를 사용하라
상태패턴을 이용해서 체스게임을 구현했는데, 해당 피드백을 받았다. 지금까지 미션을 하면서 무지성으로 IllegalArgumentException
을 던졌었는데, 이번 기회에 공부를 해봤다.
표준 예외
숙련된 프로그래머는 그렇지 못한 프로그래머보다 더 많은 코드를 재사용한다. 예외도 마찬가지로 재사용하는 것이 좋다.
대표적으로 재사용되는 예외는 아래와 같다.
예외 | 주요쓰임 |
---|---|
IllegalArgumentException | 허용하지 않는 값이 인수로 건네졌을 때 |
IllegalStatementException | 객체가 메서드를 수행하기에 적절하지 않은 상태일 때 |
NullPointerException | null을 허용하지 않는 메서드에 null을 건넸을 때 |
IndexOutOfBoundsException | 인덱스가 범위를 넘어섰을 때 |
ConcurrentModificationException | 허용하지 않는 동시 수정이 발견됐을 때 |
UnsupportedOperationException | 호출한 메서드를 지원하지 않을 때 |
왠만한 상황에서는 표준예외가 정의되어있느니 재사용하는 것을 추천한다.
Exception
, RuntimeException
, Throwable
,Error
는 직접 재사용하지말고, 추상 클래스라고 생각하길 바란다.
정리
public class End implements State {
@Override
public State start() {
throw new IllegalStateException("[ERROR] 게임이 이미 종료되었습니다.");
}
End 상태일 경우 start를 호출하지 못하는 이유는 허용되지 않는 값이 인수로 건네져서가 아니라 객체가 메서드를 수행하기에 적절하지 않은 상태이기 때문에 IllegalStateException
을 쓰는 것이 적절하다.
Author And Source
이 문제에 관하여(아이템72. 표준 예외를 사용하라), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mohai2618/아이템72.-표준-예외를-사용하라저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)