我正在尝试从XML文档中解析元素。它适用于大多数人,但有时我可能会遇到致命的错误,因为我得到了格式错误的XML文档。当我通过抛出异常来获取这些XML文档时,我想忽略这些情况。控制台给了我SAXParseException
,但是当我在catch
块中调用它时,它无法执行。我想在JSP scriplet中做到这一点,但由于scriplet没有主动搜索SAXException
,所以它永远不会抛出。
我虽然解决方法是创建一个抛出异常的方法,但同样,它表示SAXParseException
/ try
语句中永远不会抛出catch
。这里发生了什么?
public String parseElementsByTagNameInXML(Document doc, String tagName) throws SAXParseException
{
try{
return doc.getElementsByTagName(tagName).item(0).getTextContent();
}
catch(SAXParseException e){
System.out.println("Failure on Generating MessageID: " + e);
}
catch(NullPointerException e){
//will not spam the console with nullpointexception errors
}
catch(Exception e){
System.out.println("Failure on Generating MessageID: " + e);
}
return "";
}
答案 0 :(得分:0)
你的方法定义它将抛出SAXParseException,但是你的try catch正在捕获并消耗它而不会将它重新抛弃。相反,我认为它会将其打印出来。 尝试删除该catch和异常catch,然后如果SAXParseException失败,它会将它抛给任何调用该方法的人。