我正在使用javax.xml.transform.*
XSLT 转换。由于要使用的 xslt 文件来自外部世界,因此该文件中可能存在错误,我将向用户返回一些有意义的响应。
虽然我可以很容易地捕捉到TransformationException
s,但我发现无法从中获取足够的信息。例如,如果有一个标签要被一个结束标签终止,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'
这正是我想要的。不幸的是,由于这是一个 Web 应用程序,用户无法看到它。
如何向用户显示正确的错误消息?