2010-03-02 6 views
19

(javax.activity.InvalidActivityException에서와 같이) "잘못된"대 (IllegalArgumentException에서와 같이) "불법"사용 간의 의미 론적 차이가 있습니까? 자바 예외 명명 규칙 자바

는 할당하는 과정은 토큰 화 될 수없는 입력 문자의 시리즈를 대표하는 IllegalArgumentException의 서브 클래스를 작성하는 데 유용되었고, 나는 대회가 InvalidTokenException 또는 IllegalTokenException을 사용 말한다 있는지 궁금하네요.

지금까지 찾을 수있는 유일한 차이점은 이 "유효하지 않음"을 선호하는 반면 java.lang은 "잘못된"것을 선호하는 것입니다. 그러나 IllegalArgumentException의 하위 클래스 인 java.security.InvalidParameterException도 있습니다.

+0

@ehdv uped my answer – stacker

답변

8

법적 허용에 API 사용이 가능하며 은 여전히 ​​ 데이터입니다. 그것은 모든 의미론입니다.

+2

하지만 IllegalArgumentException은 잘못된 API 사용과 잘못된 데이터를 모두 포함하는 것으로 보입니다. – ehdv

-1

AFAIK, IllegalArgumentException은 API 메서드 호출의 잘못된 사용을 알리려는 경우에만 사용해야합니다. 당신이 묘사하는 것으로 보이는 것은 API가 잘못 사용 된 시나리오이므로 IllegalArgumentException이 더 나은 선택이라고 생각합니다.

+0

두 번째 "IllegalArgumentException"에 대해 'IllegalStateException'을 의미 했습니까? 그렇지 않다면, 나는 정말로 혼란 스럽다 ... – ehdv

+1

AFAIK는 OP가 요구하는 것이 아니다. –

+0

@DR - 정확합니다. 형식 개선, btw 주셔서 감사합니다. – ehdv

2

javax.activity.InvalidActivityExceptionjava.rmi.RemoteException에서 상속되며 아마도이 종속성을 원하지 않을 것입니다. 또한 Javadoc

EDIT 두 가지를 모두 편집합니다. 올바르지 않거나 잘못되었습니다. 동의어로 의미를 구분하지 않습니다. 위에서 언급 한 기술적 인 문제뿐입니다.

편집 : Postgres에서 Documentation 섹션 45.3.14. 까다로운 단어 :

불법. "불법"은 법률 위반을 의미하고 나머지는 "무효"입니다. 아직 유효하지 않은 이유는 무엇보다 중요합니다.

+1

그는 이름에 대해 이야기하고 InvalidActivityException을 확장하지 않습니다. –