如何在Try / Catch中为错误的XML文档抛出Java SAXParseException

时间:2016-02-04 20:28:37

标签: java xml exception saxparseexception

我正在尝试从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 "";
        }

1 个答案:

答案 0 :(得分:0)

你的方法定义它将抛出SAXParseException,但是你的try catch正在捕获并消耗它而不会将它重新抛弃。相反,我认为它会将其打印出来。 尝试删除该catch和异常catch,然后如果SAXParseException失败,它会将它抛给任何调用该方法的人。