Я использую javax.xml.transform.*
для преобразования XSLT. Поскольку xslt-файл, который будет использоваться, поступает из внешнего мира, в этом файле могут быть ошибки, и я собираюсь вернуть какой-то значимый ответ пользователю.Как извлечь полезную информацию из TransformerException
Хотя я могу легко поймать TransformationException
, я не нашел способа получить от него достаточную информацию. Например, если есть тег должен заканчиваться конечным тэгом, printStackTrace()
выдает сообщение рубцевания
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source)
... (100 lines)
и getMessage()
дает только
Could not compile stylesheet
Ни один из них не дает истинную причину ошибки.
Я заметил, что в тестовой консоли Eclipse, я могу увидеть следующее
[Fatal Error] :259:155: The element type "sometag" must be terminated by the matching end-tag "</sometag>".
ERROR: 'The element type "sometag" must be terminated by the matching end-tag "</sometag>".'
FATAL ERROR: 'Could not compile stylesheet'
Это именно то, что я хочу. К сожалению, поскольку это веб-приложение, пользователь не видит этого.
Как я могу отобразить правильное сообщение об ошибке для пользователя?
Вы действительно не можете. Если вы хотите запустить этап проверки ..... – Thihara
Не является причиной причины? – agad
@agad К сожалению, 'getCause()' call возвращает 'null'. –