首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何防止XML解析错误被写入System.err (stderr)?

如何防止XML解析错误被写入System.err (stderr)?
EN

Stack Overflow用户
提问于 2011-10-08 02:47:21
回答 1查看 2.8K关注 0票数 21

我正在编写一些单元测试,它们故意将错误的字符串传递给Java DOM XML解析器。

例如。

代码语言:javascript
复制
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

String message_xml = ""; // Empty string, not valid XML!!!
ByteArrayInputStream input = new ByteArrayInputStream(message_xml.getBytes());
Document doc = db.parse(input);

这正确地抛出了一个SAXParseException (这正是我的单元测试所期望的)。但它也在向Java console中的System.err (stderr)写入一条消息:

代码语言:javascript
复制
[Fatal Error] :1:1: Premature end of file.

有没有办法将XML解析器配置为不写入stderr?

我使用的是Java1.6SE。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-08 02:52:59

安装您自己的ErrorHandler

代码语言:javascript
复制
db.setErrorHandler(new ErrorHandler() {
    @Override
    public void warning(SAXParseException e) throws SAXException {
        ;
    }

    @Override
    public void fatalError(SAXParseException e) throws SAXException {
        throw e;
    }

    @Override
    public void error(SAXParseException e) throws SAXException {
        throw e;
    }
});
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7691585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档