来源:Medium 这篇文章将帮助您更好地了解如何在 Java 中有效地处理异常。 处理 Java 异常可能具有挑战性。确定要处理哪些 Java 异常、要重新抛出哪些异常以及要忽略哪些异常可能很困难。但是,有许多有用的指南可以有效地帮助您处理异常并创建新的应用程序。让我们来认识一下他们吧。
- 小心你记录的内容。
- 不要忽略抛出的异常。
- 使用全局异常处理程序。
- 不要手动关闭资源。
- 尽早抛出并稍后处理异常。
- Java 异常不应被记录并重新引发。
- 检查抑制的异常。
- 在 throw 语句中,准确地声明异常。
- 首先处理最明显的异常。
- 使用现代异常处理语义。
1. 小心你记录的内容
软件开发人员应始终了解客户的安全和隐私权。- Java 程序可以将数据移动到其他系统,并且大量的开发人员和管理员可以使用它(包括修复错误)。
- 如果日志文件中记录了任何敏感数据,您的公司将不符合安全要求,您可能会失去工作。
2. 不要忽略抛出的异常
不要捕获异常然后忽略它。在 Java 中隐藏异常并不是处理异常的好方法。至少写下异常的名称和关联的消息。这样,就可以在您的条目中找到有关该问题的信息。由于隐藏异常而调试 Java 应用程序非常困难。3.使用全局异常处理程序
在程序执行期间,总会出现一些代码中以前未捕获的异常。因此,始终添加一个全局异常处理程序来处理未捕获的异常。这不仅允许记录和处理异常,而且还可以防止在运行时抛出异常时应用程序崩溃。4.不要手动关闭资源
处理 Java 异常时的另一个重要建议是允许 JVM对正在关闭的资源调用close()方法。不要尝试自己关闭它们。这可以通过初始化try-resources模块内的资源来轻松实现。语义:public class TryWithResourcesExample {
public static void main(String[] args) throws Exception {
try (Door door = new Door()) {
door.swing();
} catch (Exception e) { ..... }
} finally { .....}
}
}
正如您所看到的,在 try...catch 块完成后,JVM 会为您关闭资源,从而消除了复杂且难以修复的资源泄漏的可能性。
5. 尽早抛出并稍后处理异常
每当代码中出现异常情况时,就引发异常。不要等待任何代码行执行后再退出您所在的方法。捕获异常时,函数必须放在方法的末尾。这减少了方法中的catch块的数量,使代码更易于阅读和维护。6. Java异常不应该被记录和重新抛出
如果发生异常,请执行以下操作之一:- 在记录异常的同时继续使用您的程序。
- 再次引发异常并允许采用不同的方式记录数据。
try {
Class.forName("com.min.Example");
} catch (ClassNotFoundException ex) {
log.warning("Class was not found.");
throw ex;
}
这会导致代码重复和日志文件被重复条目堵塞,从而使诊断代码变得更加困难。
GO TO FULL VERSION