Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否在方法签名中声明NullPointerException?_Java_Nullpointerexception - Fatal编程技术网

Java 是否在方法签名中声明NullPointerException?

Java 是否在方法签名中声明NullPointerException?,java,nullpointerexception,Java,Nullpointerexception,Nullpointerexception被视为运行时异常,所有运行时异常都不需要在引发它的方法签名中声明。但是,NullPointerException给了我一个编译错误,说-UnhandledException!为什么会这样 1...void doMore(){ 2... throw new NullPointerException(); 3...} 第2行显示编译错误,但如果引发任何其他运行时异常(如NullArgumentException),则不会出现编译错误。NullPoint

Nullpointerexception被视为运行时异常,所有运行时异常都不需要在引发它的方法签名中声明。但是,NullPointerException给了我一个编译错误,说-UnhandledException!为什么会这样

1...void doMore(){
2...    throw new NullPointerException();
3...}

第2行显示编译错误,但如果引发任何其他运行时异常(如NullArgumentException),则不会出现编译错误。NullPointerException真的是未经检查的异常吗?

否,因为NullPointerException扩展了

方法不需要在其throws子句中声明在方法执行期间可能抛出但未捕获的RuntimeException的任何子类


您可以在任何地方的代码中使用
NullPointerException
,就像任何其他异常一样。但是,作为未检查的异常,您不必在函数体中声明它,也不需要处理它。因此,如果您得到一个编译器错误,那不是因为
NullPointerException
,而是因为代码中的一些其他问题,您没有发布这些问题

这样的方法编译得非常好,没有任何错误:

void doSomething() {
    throw new NullPointerException();
}

您可以,但不必这样做,因为NPE是一个未选中的异常

我认为“doMore()”方法只是为了证明NullPointerException是否是未经检查的异常。我不知道为什么会有人需要一个抛出它们的方法


事实上,这是不受约束的。事实上,如果我使用Eclipse将您的代码粘贴到一个新类中,就不会出现编译器错误。因此,我认为这与IDE配置对空相对代码验证的严格要求有关,或者与代码段中未出现的其他错误有关。

是的,您可以将NullPointerException用作代码中的任何其他异常,但它没有用,因为您不需要处理代码中的所有运行时异常(未选中)

这里您不会因为声明NullPointerException而得到错误,但可能是其他编译错误

在此,您可以参考此示例:

public static void main(String args[]) {
    String str = null;
    System.out.println(str.length());

    throw new NullPointerException();
}

为什么首先要从代码中抛出一个
NullPointerException
?检查文档中的
NullPointerException是否真的是未检查的异常?
NPE是未检查的,因此更有可能是另一个无法处理的异常。您遇到了哪一个错误,代码的其余部分看起来如何?抛出异常时,确保它有足够的信息-在本例中,IllegalArgumentException和引起null的原因说明可能更有用这只是一个示例类,只有此方法,没有其他内容。我刚刚用NullArgumentException替换了NullPointerException,它工作得很好,但对NullPointerException不起作用。Eclipse会阻止我在不添加抛出的情况下使用它吗?不会。正如我所说,上面的方法工作得很好,我在Eclipse中测试了它。您的问题在其他地方,但您应该显示完整的错误消息和代码,以判断出了什么问题。IDE配置部分就是问题所在!我试着在一个单独的项目中运行它,效果很好。