我正在尝试执行java类加载。我在macos优胜美地上使用了日食(luna)和1.8.0_25。Try/Catch没有捕捉异常
我正在使用下面的代码来完成它。它正在工作,直到它到达一个具有依赖项的类,该依赖项不包含在我从中加载类的jar中。无论在环境上。
我对这个类不感兴趣,所以,可以放心地忽略它。所以,我把它放在一个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块内的确切的行。
为什么? 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);
}
}
}
这对堆栈跟踪呢?引起:java.lang.ClassNotFoundException – committedandroider 2014-11-23 07:23:45
修复你的类路径。你似乎缺少了aspectj.jar。 – 2014-11-23 07:23:46
这是真的吗?该行以'Exception in thread'开始 – user3282276 2014-11-23 07:23:50