我正在使用 Apache Xalan (v.2.7.1) 在 Apache Tomcat (v6.0.32) 中将 XML 转换为 XHTML。有时加载会被客户端取消并引发以下异常:
javax.xml.transform.TransformerException: org.apache.xalan.xsltc.TransletException: ClientAbortException: java.io.IOException
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:636)
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:303)
...
我想捕获 ClientAbortException 异常,以便它不会向日志发送垃圾邮件。但是,如何检查异常是否嵌套在 ClientAbortException 内?我尝试过这样的事情:
...
} catch (Exception e) {
if (e.getCause() != null && e.getCause().getCause() instanceof org.apache.catalina.connector.ClientAbortException) {
//do nothing
} else {
throw e;
}
} finally {
...
但它只给了我一个空指针异常,因为第一个 getCause 没有 getCause。有任何想法吗?
Use the ExceptionUtils.getRootCause(Throwable)
Apache Commons-lang 中的方法,它将为您遍历原因链。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)