Transformer
方法转换的签名是 void transform(Source xmlSource,Result outputTarget)throws TransformerException
即指定它
抛出类型为 TransformerException 的已检查异常。
我不明白 ErrorListener
是如何适应的。
如果将 ErrorListener
设置为 Transform
对象,这是否意味着不会抛出异常?
如果它无论如何都会被抛出,ErrorListener 有什么用?
谢谢
最佳答案
如果未设置ErrorListener
,错误/警告消息将转到System.err
,因此重定向错误消息很有用。如果发生错误/警告,则由应用程序决定是否继续转换。如果 ErrorListener
中的适当方法抛出异常,则转换将退出并返回 TransformerException
。在 fatalError
上,转换将停止,即使 ErrorListener::fatalError
没有抛出异常。
更新总结
TransformerException
在发生 fatal error 时抛出,这与ErrorListener
或是否已设置无关。TransformerException
抛出,当可恢复的错误或警告发生时,设置ErrorListener
,并相应的方法(error
或warning
) 抛出异常。因此,应用程序可以决定在 rec 上做什么。错误和警告。
关于java errorlistener 在转换器实例上的使用(jaxp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265526/