Transformer的方法转换的签名是void transform(Source xmlSource,Result outputTarget)throws TransformerException,即指定它
引发类型为TransformerException的已检查异常。
我不明白ErrorListener如何适合。
如果将ErrorListener设置为Transform对象,这是否意味着将不会引发异常?
如果仍然抛出,则ErrorListener有何用处?

谢谢

最佳答案

如果未设置ErrorListener,则错误/警告消息将转到System.err,因此重定向错误消息很有用。如果发生错误/警告,则由应用程序决定是否继续转换。如果ErrorListener中的适当方法引发异常,则转换将以TransformerException退出。在fatalError上,即使ErrorListener::fatalError不会引发异常,转换也会停止。

更新摘要


当发生致命错误时,将抛出TransformerException,这与ErrorListener或是否设置无关。
引发TransformerException,当发生可恢复的错误或警告时,将设置ErrorListener,并且相应的方法(errorwarning)已引发异常。因此,应用程序可以决定在记录时要做什么。错误和警告。

07-24 20:15