2

我正在尝试从 XML 文档中解析元素。它适用于大多数人,但有时我可能会遇到致命错误,因为我收到了格式错误的 XML 文档。当我通过抛出异常来获取这些 XML 文档时,我想忽略这些情况。控制台给了我一个SAXParseException,但是当我在catch块中调用它时,它不能。我想在 JSP 脚本中执行此操作,但由于脚本没有主动搜索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 "";
        }
4

1 回答 1

0

您的方法定义它将抛出 SAXParseException 但您的 try catch 正在捕获并使用它,而不会将其扔回线上。相反,我认为它正在打印出来。尝试删除该捕获和异常捕获,然后如果它因 SAXParseException 而失败,它将把它扔给调用该方法的任何人。

于 2016-02-04T20:51:35.663 回答