[英]No null pointer exception after calling method of null object
我是编程新手,并且大部分时间都在使用Java。 通常,如果我不小心尝试从null变量中调用方法,则会得到null指针异常。 但是,在一种情况下,我发现程序执行被卡住了(仍在运行,但不会再执行任何行)而没有产生异常。
什么原因导致对对象变量为null的方法调用不会产生空指针异常?
更重要的是,将来如何避免这种情况,因为如果在该行生成空指针异常,则查找问题会容易得多。
什么原因导致对对象变量为null的方法调用不会产生空指针异常?
它将始终产生 NPE。 但是,如果您捕获到异常却什么也不做,则可以“隐藏”它,如下所示:
MyClass myVar; // myVar is not instanciated
try {
myVar.myFct(); // NPE is thrown here !
} catch (NullPointerException npe) {
// do nothing : **can be dangerous, don't do this ! **
// basic code here should be at least: npe.printStacktrace();
}
在这种情况下,将引发异常,但用户(或您)将永远不会看到它已引发。
好吧,我必须确定要回答您的代码,但是它很可能陷入无限循环。 没有人看不到您的代码,就无法确切告诉您原因。
下次,只需添加一个if循环来检查以确保该值不为null。
例如
if ( variableName !== null)
{
// work properly
}
else
{
//print out error message
}
您可以使用异常捕获来捕获异常,但是我认为这是一种更好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.