我在我的项目中使用的是一个外部库,我无法控制它。我在用罐子。这个外部库有一个类,我在这个类上调用静态方法,该方法与某个外部系统建立连接。
如果连接到外部系统时出现问题,这个外部库类将抛出java.lang.exception。
虽然我知道使用Throwable捕捉异常是一个不好的实践,但我使用Throwable捕捉异常是因为我想继续尝试连接外部应用程序,所以需要继续调用这个外部类方法。
但是当Java第一次在内部卸载这个类时失败了。因为当我再次调用该方法时java.lang.NoClassDefFoundError:无法初始化类。
我想知道有没有办法再上一次课。
我试图使用java.lang.ClassLoader加载类。然而,这并不奏效。
{
ExternalClass.connect();
}catch(Throwable t)
{
if(t instanceof java.lang.InternalError)
{
logger.error("Error While connecting", t);
}
else{
logger.error("Other Error While connecting", t);
}
}