在启动时,我希望我的Java程序加载一个DLL,该DLL应该在java.library.path定义的路径上.但是,如果缺少该DLL,我希望我的程序回退到加载不同的DLL.如果找不到DLL文件,System.LoadLibrary会抛出UnsatisfiedLinkError.UnsatisfiedLinkError是Error的子类,而不是Exception的子类.很多评论都表明捕捉错误是不好的做法.这是一个可以做这样的事情的情况吗?
try
{
System.loadLibrary("myLibrary");
}
catch (UnsatisfiedLinkError e)
{
try
{
System.load(<a fully qualified path to my fall-back library>);
}
catch (UnsatisfiedLinkError e)
{
<report that even the fall-back library didn't load>;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*oni 16
在这种情况下,它是完全可以接受的.事实上,这是做你想做的事的唯一方法.
一般来说,捕获错误是不好的做法,因为没有什么可以从它们中恢复,之后应用程序可能处于不可预测的状态.例如,OutOfMemoryError意味着你的内存已经耗尽,你可以做的很少.StackOverflowError意味着你的调用堆栈已经变得太深,你也无法做很多事情.
| 归档时间: |
|
| 查看次数: |
4559 次 |
| 最近记录: |