java errorlistener use on a transformer instance(jaxp)
The signature for method transform of Transformer
is void transform(Source xmlSource,Result outputTarget)throws TransformerException
i.e. specifies t开发者_开发问答hat it
throws a checked exception of type TransformerException.
ErrorListener
fits in.
If an ErrorListener
is set to Transform
object does this mean that the exception will not be thrown?
If it is thrown anyway how is an ErrorListener useful?
Thanks
If ErrorListener
is not set, the error/warning message will go to System.err
, so it is useful to redirect error messages. It is up to application to decide should it continue transformation, if an error/warning occured. If the appropriate method in ErrorListener
throws an exception, the transformation will exit with TransformerException
. On fatalError
transformation will be stopped, even if ErrorListener::fatalError
doesn't throw an exception.
Update Summary
TransformerException
is thrown, when a fatal error occurs, and this doesn't depend onErrorListener
or whether it is set or not.TransformerException
is thrown, when a recoverable error or a warning occurs, theErrorListener
is set, and the corresponding method (error
orwarning
) has thrown an exception. So the application can decide what to do on rec. errors and warnings.
精彩评论