2011-10-07 8 views
18

私は意図的に不正な文字列をJava DOM XMLパーサに渡すいくつかの単体テストを書いています。System.err(stderr)にXML解析エラーが書き込まれないようにするにはどうすればよいですか?

など。

これは正しく(私のユニットテストが期待している)SAXParseExceptionをスローしています。しかし、それはまた、JavaコンソールではSystem.err(stderr)にメッセージを書いている:

[Fatal Error] :1:1: Premature end of file. 

はstderrに書き込みをしないようにXMLパーサーを設定する方法はありますか?

私はJava 1.6SEを使用しています。

+0

は、パッケージのロガーを設定してみ?しかし、それはなぜ重要なのですか?彼らは単体テストです。 –

答えて

24

独自のErrorHandlerをインストールします。

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; 
    } 
}); 
関連する問題