我正在嘗試執行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