gpt4 book ai didi

java - Try/Catch 未捕获异常

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:15 25 4
gpt4 key购买 nike

我正在尝试加载 java 类。我在 macos 优胜美地上使用 1.8.0_25 的 eclipse (luna)。

我正在使用以下代码来执行此操作。它一直在工作,直到它到达一个类,该类具有不包含在我从中加载类的 jar 中的依赖项。既不环保。

我对这些类(class)不感兴趣,所以,忽略它是安全的。所以,我将它放在 try/catch 中并记录它。

但是,当异常发生时,执行被取消。

异常(总结)是:

Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/runtime/internal/AroundClosure

Caused by: java.lang.ClassNotFoundException: org.aspectj.runtime.internal.AroundClosure

它在内部 try/catch block 内的确切行处上升。

为什么? try/catch 不应该只记录它并继续吗?

URLClassLoader ucl = null;
try {
URL url = Utils.getURIFromPath(jarFilePath).toURL();
URL[] urls = new URL[] { url };
ucl = new URLClassLoader(urls);
for (String tmp : classes) {
String clazz = tmp.substring(0, tmp.indexOf(".class")).replaceAll("/", ".");
try {
ucl.loadClass(clazz);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
}
} catch (MalformedURLException e) {
LOGGER.error(e.getMessage(), e);
} finally {
if (ucl != null) {
try {
ucl.close();
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
}
}

最佳答案

NoClassDefFoundError 是一个错误,而不是一个Exception,你应该绝不1 尝试捕获错误,as stated here ,捕获它对你没有帮助。

检查你的类路径并修复它。

1 在某些情况下,您可能希望捕获 错误并相应地处理它,如注释中所述,也许“从不”有点强

关于java - Try/Catch 未捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com