如何确定没有异常被捕获java

时间:2014-08-07 08:36:13

标签: java exception-handling xml-parsing sax

我有一个用于xml文件验证的代码:

try {
        DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
        domFactory.setValidating(true);
        DocumentBuilder builder = domFactory.newDocumentBuilder();
        builder.setErrorHandler(new ErrorHandler() {

            public void error(SAXParseException exception) throws SAXException {
                System.out.println("Error: " + exception.getMessage());
            }
            public void fatalError(SAXParseException exception) throws SAXException {
                System.out.println("Fatal error: " + exception.getMessage());
            }

            public void warning(SAXParseException exception) throws SAXException {
                System.out.println("Warning: " + exception.getMessage());
            }
        });

            Document doc = builder.parse(xml);
        } catch (SAXException e) {
            e.printStackTrace();

        } catch (IOException e) {
            e.printStackTrace();

        } catch (ParserConfigurationException e) {
            e.printStackTrace();

        } 

我无法弄清楚应该如何组织我的异常处理,因此我可以像"File is valid!"或类似地打印消息System.out.println(xml + " is valid!");

4 个答案:

答案 0 :(得分:2)

如果这一行

Document doc = builder.parse(xml);

没有抛出异常,解析工作。在这一行之后做你想做的事。

ErrorHandler方法的主体可能不仅应该打印输出并继续。致命错误的错误应该停止解析。

答案 1 :(得分:1)

只需在开始catch子句之前添加该行。如果它到达那里,则意味着没有引起异常。

答案 2 :(得分:0)

您应该检查parse方法的javadoc。如果发生任何异常,它将返回null。然后,您可以在try / catch块之后或doc == null块中检查finally

答案 3 :(得分:0)

我设法解决了我的问题。我只需要在throw exception;方法中添加ErrorHandler行,以便跟踪验证过程。