除了就如何在技术上克服这个问题提供建议外,我还想花点时间解释为什么它首先被认为是“不良做法”。
让我们从澄清类是什么开始。Error
在java中,会引发错误和异常(它们是主要类型)。抛出上述内容之一是通过使用关键字完成的。每个扩展基本值的类都可以被抛出。throw
java.lang.Throwable
有两个类从基本类继承:和 。这两者之间的区别在他们的文档中进行了解释:Throwable
Exception
Error
Error 是 Throwable 的一个子类,它指示合理的应用程序不应尝试捕获的严重问题。大多数此类错误都是异常情况。[...]
源
类 Exception 及其子类是 Throwable 的一种形式,它指示合理的应用程序可能想要捕获的条件。
源
如上所述,错误和异常是分开的,因为它们的起源不同。通常表示应用程序无法从中恢复的问题。因此,不应捕获它们。Error
对于 a 也是如此,但它用于指示高级层(例如方法)的问题。而 表示低级问题(例如运行时)。RuntimeException
Error
因此,既然您已经了解了您只能捕获能够从中恢复的异常和错误,那么您问题的答案应该很清楚。
是的,捕获 是完全合理的,因为您的应用程序可以从中恢复。UnsatisfiedLinkError
我在我的博客上的一篇文章中介绍了上述内容(更详细地和示例)和一些扩展信息。