java - 捕获空指针异常

标签 java exception nullpointerexception try-catch

我问的主要是关于 Java 的,但我想它适用于所有语言。

考虑一下,

if(myVariable==null){
    doSomethingAboutIt();
}
else carryOn(myVariable);

try{
    carryOn(MyVariable);
}
catch(NullPointerException e ){
      doSOmethingAboutIt();
}

这两个代码块本质上是一样的吗?有什么理由选择第二种方法吗?当然,如果 myVariable 永远不为 null 会更好,但检查它的最佳方法似乎是执行一个简单的 if 语句。

最佳答案

从我的立场来看,我犹豫是否认为这两个代码块在意图上是等价的。当然,它们会经历相同的错误处理,但这是开发人员的决定,而不是其他任何事情。

对我来说,if测试 以查看某个值是否可以使用,如果不能,它正在解决这个问题。 try...catch block 假设该值有效,如果无效,它就会失败以解决异常行为。

当出现异常的、破坏程序的代码(被零除等)时,应主要考虑异常。

关于java - 捕获空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965988/

相关文章:

java - 在 try catch 中处理两个不同的连接关闭

java - 将字符串分配给 stringArray 时返回 NullPointerException?

java - 将 imageView 的内容设置为壁纸( picasso )

java - "error: cannot find symbol"符号位于 Switch 语句内

java - 在二维矩阵中找到最左边和最右边角之间的最短路径

java - 实现基于注解的Spring AspectJ (JavaConfig)

java - Elasticsearch 不适用于 Shopizer

java - 使用 Java 可选简化 if、else-if、else

java - 使用app engine java servlet动态创建和存储csv文件

java 嵌套 for() 循环抛出 ArrayIndexOutOfBoundsException