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

我正在编写一些单元测试,这些测试故意将坏字符串传递给JavaDOM XML解析器

例如

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
字符串消息_xml=”“;//空字符串,不是有效的XML!!!
ByteArrayInputStream输入=新建ByteArrayInputStream(message_xml.getBytes());
文档doc=db.parse(输入);

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

[致命错误]:1:1:文件过早结束。

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

我正在使用Java1.6SE

安装您自己的错误处理程序

db.setErrorHandler(新的ErrorHandler(){
@凌驾
公共无效警告(SAXParseException)引发SAXParseException{
;
}
@凌驾
公共void fatalError(SAXParseException)抛出SAXParseException{
投掷e;
}
@凌驾
公共无效错误(SAXParseException)引发SAXException{
投掷e;
}
});

发表评论