我有以下代碼爲什麼這個異常沒有被捕獲
try {
xpathInstance = XPath.newInstance(xpathExpr);
list = (Text) xpathInstance.selectSingleNode(doc);
} catch (JDOMException e) {
throw new Exception(e);
}
我忘了包括是jdom.jar庫的依賴庫。當我運行應用程序時,我看到了這個錯誤。
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at org.jdom.xpath.XPath.newInstance(XPath.java:134)
at com.myapp.parser.GenericXMLParser.getSingleNodeValue(GenericXMLParser.java:63)
按照JDOM文檔中,newInsance()方法拋出一個JDOMEXCeption所以不應該它已經引起了錯誤?
另外,我如何避免必須添加catch(Exception e)子句以避免未知的異常。
謝謝
嗨,根據文檔,JDOMException擴展了「Exception」,所以它不應該被捕獲,因爲NoClassDefFoundError也擴展了「Exception」? – ziggy 2011-04-30 15:56:50
父類型可以捕獲任何子類型,但反之亦然是不可能的 – 2011-04-30 15:58:01
確定這是否意味着要捕獲這些unkownn異常,我必須在try/catch子句末尾添加catch(Exception e)? – ziggy 2011-04-30 15:58:10