Question

The signature for method transform of Transformer is void transform(Source xmlSource,Result outputTarget)throws TransformerException i.e. specifies that it throws a checked exception of type TransformerException.
I can not understand how 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

Was it helpful?

Solution

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

  1. TransformerException is thrown, when a fatal error occurs, and this doesn't depend on ErrorListener or whether it is set or not.

  2. TransformerException is thrown, when a recoverable error or a warning occurs, the ErrorListener is set, and the corresponding method (error or warning) has thrown an exception. So the application can decide what to do on rec. errors and warnings.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top