dri*_*ter 0 java null android nullpointerexception nullreferenceexception
当方法可以获得空引用而不是有效的对象值时,拥有像 IllegalArgumentException 这样的自定义异常并在所有情况下抛出它是否是个好主意?
public void method(String str){
if(str == null)throw new CustomIllegalArgumentException("str cannot be null");
}
Run Code Online (Sandbox Code Playgroud)
我认为这样我总能看到这种非法参数异常和其他 RuntimeExceptions 之间的区别。
这主意好不好?
PS:我看过像Avoiding != null statements这样的帖子
**更新:**所以我会知道这是程序员意图的异常,我会有清晰的日志。
IllegalArgumentException是标准,而不是自定义异常。NullPointerException当争论null不应该发生时抛出是惯例。
当它们适合您的特殊情况时,您通常应该更喜欢标准异常。另请参阅“Effective Java 2nd edition”(“支持使用标准异常”)中的第 60 条。这样做的一个优点是,您可以为类似情况编写单个处理程序,这些情况可能出现在您自己的代码和您使用的库中。
为了区分异常,您应该使用它们携带的字符串消息。此外,堆栈跟踪将指示异常是从您自己的代码还是其他代码引发的。不需要额外的异常类。
创建自己的异常类可能是合理的一种情况是,当您需要异常携带有关它所指示的异常情况的额外信息时。在这种情况下,您仍然应该从适当的标准类派生异常,以便可以编写单个处理程序来处理来自您自己的代码和您使用的库的类似条件的异常。
另请参阅Preconditonsgoogle 的实用程序类。特别checkNotNull()实用方法,该方法还抛出NullPointerException时其参数是null。
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |