如果我有下面的功能,有两个选择
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
return null;
}
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
throw new NoSuchFieldError("No blank piece found!");
}
从这个方法我知道它应该总是返回一个对象“碎片”之一总是isBlank() == true
,最后返回 null 只是为了取悦编译器。既然是这种情况,并且如果我的代码返回 null,那么我的代码将无法工作,请问这是正确的抛出异常吗?
我的选择是:
- 返回 null 并且应用程序在某些边缘情况下将得到 NullPointerException
- 返回 null 并使用 (myObject != null) 检查包装该方法的使用
- 抛出一个异常,该异常会在运行时炸毁它
我想我要问的是,这是抛出异常的正确位置吗?也就是说,如果发生这种情况,我无能为力。这是否被归类为“异常”,或者我应该检查我的方法返回的内容(这使我的代码看起来很糟糕)。如果我知道它不应该返回 null 那么我应该抛出异常,对吧?
另外,我将如何选择什么异常,或者扩展一个异常并抛出我自己的异常?
我想我要问的是,这是抛出异常的正确位置吗?
如果它是一个异常的情况,那么是的。如果找不到任何符合条件的可能性是expected那么情况不是异常的你应该回来null
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)