如何有效处理任何类型的异常?

Moh*_*igh 1 java exception-handling exception

异常处理是从崩溃中保存应用程序的最有用的机制.甚至我们大多数人都遵循异常处理机制.即使我看到许多仍然得到例外.我们是否应该以应有的方式处理异常?我的问题是,处理任何异常的最佳方法是什么?

我想清楚几点.当我说处理异常时,这不仅意味着捕获适当的异常消息并显示或记录它.相反,它假设处理异常的纠正措施.

让我们考虑这段代码:

try {
  someMethod1();
} catch (MyException e) {
  System.out.println(e.getMessage());
} catch (YourException e) {
  System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,"MyException"和"YourException"可能无法捕获所有类型的Exception.但是,当然我们可以使用"java.lang.Exception".我们如何识别正确的异常类型?以及如何处理该异常?特别是在使用外部库时.

更多细节根据要求.

谢谢

Jin*_*ekh 7

您不想捕获运行时异常.原因是,你只是在那里隐藏一个bug.而是让应用程序失败并修复它.要回答你的问题,如果你抓住Throwable,你将基本上吃掉任何类型的例外.

经验法则:仅捕获应用程序异常.

  • 我大多同意,但我认为规则应该是"只捕捉你知道要处理的例外".有一些RuntimeExceptions它有意义捕获(特别是因为许多库放弃了检查异常 - 例如JPA).甚至可以处理奇怪的"错误". (3认同)