gpt4 book ai didi

java - 抛出异常或返回 null

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:53 25 4
gpt4 key购买 nike

如果我有下面的函数,有两个选择

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,我的代码无论如何都不会工作,请问抛出异常是否正确?

我的选择是:

  1. 返回 null,应用程序将在某些极端情况下获得 NullPointerException
  2. 返回 null 并用 (myObject != null) 检查包装方法的使用
  3. 抛出一个会在运行时爆炸的异常

我想我想问的是,这是抛出异常的正确位置吗?也就是说,如果它进入这种情况,我无能为力。这是归类为“异常”还是我应该检查我的方法返回的内容(这使我的代码看起来很糟糕)。如果我知道它不应该返回 null 那么我应该抛出异常吗?

另外,我将如何选择异常,或者扩展一个异常并抛出我自己的?

最佳答案

I guess what I'm asking is, is this the correct place to throw an exception?

如果是异常(exception)情况,那么可以。如果找不到符合条件的任何东西的可能性是预期的,那么情况不是异常(exception),您应该返回null

关于java - 抛出异常或返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com