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
,并且相应的方法(error
或warning
)已引发异常。因此,应用程序可以决定在记录时要做什么。错误和警告。