我正在编写一些单元测试,这些测试故意将坏字符串传递给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;
}
});