除了给出如何在技术上解决问题的建议之外,我想先花点时间解释为什么它被认为是“不好的做法”。
我们首先澄清Error
类是什么。
在java中,抛出了错误和异常(这是主要类型)。通过使用throw
关键字完成上述操作之一。扩展基本java.lang.Throwable
的每个类都可以抛出。
有从基本Throwable
类继承两个类:Exception
和Error
。这两个之间的区别在它们的单证解释:
的错误是Throwable的一个子类,表示严重 问题,合理的应用程序不应该试图捕获。大多数 这样的错误是异常的条件。 [...]
Source
类异常及其子类是Throwable的 是指示条件的形式,合理地应用可能要 赶上。
Source
如上所述,错误和异常的,因为它们的不同来源的分离。 Error
通常表示问题,其中应用程序不能从恢复。因此,他们不应该被抓到。
对于RuntimeException
也是如此,但它用于指示高层图层(例如方法)的问题。 Error
表示低级别问题(例如运行时)。
所以,现在你明白,你应该只捕获异常,哪些是你能够从恢复错误,回答你的问题应该是清楚的。
是的,抓住UnsatisfiedLinkError
是完全合理的,因为你的应用程序可以从中恢复。
我将上述内容(更详细地以及示例)和一些扩展信息纳入article on my Blog。
这里没有关于右对齐的信息,但是您可以在尝试...之前测试该文件是否存在... ['new File(“path/helloworld.dll”).exists()'](http:// docs。 oracle.com/javase/7/docs/api/java/io/File.html#exists%28%29)....(编辑:错误的建议,我误解了代码) –
我认为这是一个可接受的解决方法。 –
@Slanec你将不得不搜索'java.library.path'中的所有目录 –