栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

空检查错误消息为“为空”或“为空”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

空检查错误消息为“为空”或“为空”

由于

Exception
由于失败的前提条件检查而引发,因此,我认为除了陈述事实以外,还应说明已违反的 要求

就是说,而不是

"username is null"
"username should not be null"


关于使用库进行前提条件检查

提示,您可以使用许多旨在促进前提条件检查的库之一。番石榴中的许多代码使用

com.google.common.base.Preconditions

在您自己的方法开始时将调用简单的静态方法以验证正确的参数和状态。这允许诸如

 if (count <= 0) {   throw new IllegalArgumentException("must be positive: " + count); }

被更紧凑的替代

 checkArgument(count > 0, "must be positive: %s", count);

这里更直接相关的是它具有

checkNotNull
,它允许您简单地编写:

  checkNotNull(username, "username should not be null");

注意上面的代码读取的自然程度,详细消息明确指出了被违反的 要求

陈述事实的替代方法比较尴尬:

 // Awkward! checkArgument(count > 0, "is negative or zero: %s", count); checkNotNull(username, "username is null");

而且,这也可能不太有用,因为客户可能已经意识到了这一事实,并且异常并不能帮助他们弄清实际 需求 是什么。


IllegalArgumentException
VS
NullPointerException

当你的原始代码抛出

IllegalArgumentException
null
论点,番石榴的
Preconditions.checkNotNull
抛出
NullPointerException
来代替。

这符合API设置的准则:

NullPointerException
:应用程序应抛出此类的实例以指示该
null
对象的其他非法使用。

另外,这是来自 有效Java 2nd Edition 的引用 :项目60:赞成使用标准异常

可以说,所有错误的方法调用都可以归结为非法论点或非法状态,但其他例外通常用于 _ 某些种类_
的非法论据和状态。如果调用者传入

null
了禁止使用空值的某些参数,则约定
NullPointerException
使用而不是
IllegalArgumentException



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号