2010-11-24 6 views
2

Подпись для преобразования метода Transformer равна void transform(Source xmlSource,Result outputTarget)throws TransformerException. I.e указывает, что оно выдает исключение исключений типа TransformerException.
Я не могу понять, как ErrorListener вписывается.
Если ErrorListener установлен в Transform объекта это означает, что исключение не будет выброшено?
Если все равно выбрано, как полезен ErrorListener?Использование java errorlistener на экземпляре трансформатора (jaxp)

Благодаря

ответ

1

Если ErrorListener не установлен, то ошибка/предупреждение будет идти к System.err, поэтому полезно для перенаправления сообщений об ошибках. Это зависит от приложения, чтобы решить, должно ли оно продолжать преобразование, если возникла ошибка/предупреждение. Если соответствующий метод в ErrorListener выдает исключение, преобразование будет завершено с TransformerException. В fatalError преобразование будет остановлено, даже если ErrorListener::fatalError не генерирует исключение.

Update Резюме

  1. TransformerException отбрасывается, когда происходит неисправимая ошибка, и это не зависит от ErrorListener или оно установлено или нет.

  2. TransformerException выбрасывается, когда возникает неустранимая ошибка или предупреждение, то ErrorListener установлен, и соответствующий метод (error или warning) бросил исключение. Таким образом, приложение может решить, что делать на rec. ошибок и предупреждений.

+0

Вы имеете в виду, что TransformerException выбрано так или иначе, но в предложении catch вы не можете зарегистрировать сообщение об ошибке/предупреждении? Не включено ли это в TransformerException? Я не уверен, что получил ваш ответ. Исключено ли исключение Transformer независимо от установленного списка ошибок? – Cratylus 2010-11-24 12:47:57