java - 在 Java 中防止异常与捕获异常

标签 java exception error-handling

<分区>

我想知道在实践中其他 SOer 如何处理和/或防止异常。

在什么情况下你会阻止异常,如何阻止? 在什么情况下会捕获异常?

我通常通过说 if(foo!=null) {...}

来防止“NullPointerExceptions”(以及其他类似的异常)

我发现在大多数情况下,这比使用 try-catch block 所涉及的一切都没有那么庞大。

当潜在异常更复杂或更多时,我使用 try-catch block 。

最佳答案

在我看来,只有当引用为 null(同样,例如)实际上代表一个有效的程序状态时,才有意义防止 NullPointerException(例如)。如果没有,您不应该阻止它发生,因为在那种情况下您希望该程序顽固地死去。

特别是在 Java 中,从 RuntimeException 派生出的某些异常(例如 IllegalArgumentException)实际上意味着表示编程错误,如果您的程序是正确的,这些情况就不应发生。我试着遵循这个。如果我正在编写一个对其参数进行限制的方法,我将不会试图避免抛出异常。我会积极地扔一个。

关于java - 在 Java 中防止异常与捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894829/

相关文章:

logging - NLog 自定义 LayoutRenderer 不工作

java - 为什么不同的 DatagramSocket 构造函数的行为如此不同? (绑定(bind)异常)

android - 不幸的是,MyApp 已停止 - logcat 中没有错误日志

Java将Observable列表中的列分配给@fxml列

Java - 查找可执行代码行的算法

java - 如何克服 Integer.parseInt(args[0]) 的 ArrayIndexOutOfBoundException?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - 在 Spring Boot 中,如何在显示 error.html 之前捕获错误并对其进行处理?

java.lang.NoClassDefFoundError : org/apache/logging/log4j/core/Layout while running integration test using ESIntegTestCase

java - 一行中不能声明超过 2 个数组