Java异常命名约定

时间:2010-03-02 15:22:55

标签: java exception naming-conventions

在Java中,使用“非法”(如IllegalArgumentException)与“无效”之间存在语义差异(如javax.activity.InvalidActivityException })?

在赋值过程中,编写IllegalArgumentException的子类来表示一系列无法​​标记的输入字符变得很有用,我想知道约定是否使用InvalidTokenExceptionIllegalTokenException

到目前为止我能找到的唯一区别是,java.lang似乎更喜欢“非法”而javax.*更喜欢“无效”。但是,还有java.security.InvalidParameterException,它是IllegalArgumentException的子类。

3 个答案:

答案 0 :(得分:8)

您可以合法使用API​​,但仍然有无效数据;这都是语义学。

答案 1 :(得分:2)

javax.activity.InvalidActivityException继承自java.rmi.RemoteException,您可能不希望这种依赖。另请参阅Javadoc

编辑无效和非法同义词使用它在语义上没有区别,只是上面提到的技术问题。

编辑:来自Postgres Documentation第45.3.14节。要避免的棘手话语:

非法即可。 “非法”代表违法,其余是“无效”。更好的是,说明为什么它无效。

答案 2 :(得分:-1)

AFAIK,IllegalArgumentException仅在您想要发出错误使用API​​方法调用的信号时使用。你正在描述的是一个API使用不正确的情况,所以我认为IllegalArgumentException是更好的选择。