如果布尔函数失败,返回什么?

时间:2011-05-05 12:41:32

标签: java

假设一种方法:

public boolean setAttribute(){
  boolean returnval = false;
  object = this.getObject;                       //suppose this returns null
  for(Object obj : object.getObjectsForLoop()){  //<== this will fail
     doSomething();
     returnval = true;   
  }
  return returnval;
}

现在,假设在程序中的其他地方调用它。这种方法会在第四行失败并且不返回任何内容吗?

6 个答案:

答案 0 :(得分:7)

它将抛出NullPointerException而不是返回任何内容

阅读ExceptionsJava Tutorial曲目以获取更多信息。 这页面上的概念和流程有一个非常好的解释:What Is an Exception?

答案 1 :(得分:4)

如果无法返回有效对象:

object = this.getObject;

这不会返回任何东西。它会抛出一个NullPointerException:

for(Object obj : object.getObjectsForLoop()){

答案 2 :(得分:2)

该方法将使用NullPointerException突然完成。换句话说:它不会返回任何东西。

答案 3 :(得分:2)

如果object为null,则在迭代器中使用它将触发NullPointerException - 这就是你将得到的。

答案 4 :(得分:1)

这将导致NullPointerException,因为for将尝试从null对象获取迭代器。

答案 5 :(得分:1)

取决于你失败的意思。在您的情况下,它看起来像是throws NullPointerException。在这种情况下,setAttribute的调用者也将获得NullPointerException。如果你没有在任何地方处理NullPointerException,那么这将在堆栈中返回main并终止你的程序。如果处理NullPointerException,将调用catch块。