java - java 如何判断没有捕获到异常

标签 java exception 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();

        } 

我不知道应该如何组织异常处理,因此我可以像这样打印消息 “文件有效!” System.out.println(xml + "is有效!"); 或类似的。

最佳答案

如果这一行

Document doc = builder.parse(xml);

没有抛出异常,解析成功。在这行代码之后做你想做的事。

ErrorHandler 的方法主体也许不仅应该打印输出并继续。 fatal error 的错误应该停止解析。

关于java - java 如何判断没有捕获到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177819/

相关文章:

java - 在抽象类中执行方法执行顺序

java - 变量初始化时出现 ExceptionInInitializerError

java - 在 JDO 查询中忽略大小写

java - 使用 ButterKnife 处理自定义 AlertDialog 时出现异常

java - 在并行流上传播 Sleuth baggage

c++ - 如何转换 boost::Exception?

java - 异常线程 "main"java.lang.UnsatisfiedLinkError : org. lwjgl.DefaultSysImplementation.getPointerSize()I

XML UTF-8 编码表示非 ASCII 数据的正确方法是什么

iphone - 如何在 iPhone 上使用 xmlparsing 解析 XML 文件?

java - XMLPullParser 解析器无法解析 xml 标记内的 "(??????) [????] ·"