Можно перехватить UnsatisfiedLinkError, чтобы вернуться к другой DLL при вызове System.LoadLibrary?

При запуске я хочу, чтобы моя программа на Java загружала DLL, которая должна находиться по пути, заданному java.library.path. Однако, если эта DLL отсутствует, я хочу, чтобы моя программа вернулась к загрузке другой DLL. System.LoadLibrary выдает ошибку UnsatisfiedLinkError, если не может найти файл DLL. 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>;
    }
}
16
задан Stevens Miller 2 February 2012 в 16:11
поделиться