对异常绝不要轻易吃掉
最近项目中发现解释XML的时候一直报空指针,很愁人,最后反编译看代码后终于找到问题的根源了:
?
borlandxml.jar里有个类:com.borland.xml.toolkit.XmlUtil对异常处理极为不友好,如下:
??? public static Element getDocRootElement(InputStream inputstream)
??? {
??????? try
??????? {
??????????? Element element = new Element(isSAXUsed() ? getSAX().build(inputstream).getRootElement() : getDOM().build(inputstream).getRootElement());
??????????? return element;
??????? }
??????? catch(JDOMException jdomexception)
??????? {
??????????? Element element1 = null;
//这里把异常自己吃掉了。我在执行程序的时候,报:org.jdom.JDOMException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found错,
//明显是少包的问题,像这种异常,如果不反编译进来很难发现(如果使用POM.XML管理依赖也行)
??????????? return element1;
???? ???}
??????? finally
??????? {
??????????? …
??????? }
??? }
///////////////////
加入xercesImpl.jar问题解决。