我在Apache Tomcat(v6.0.32)中使用Apache Xalan(v.2.7.1)將XML轉換爲XHTML。有時加載被客戶取消及以下異常被拋出:如何在java中捕捉嵌套的異常
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 {
...
但它只給我一個nullpointerexception,因爲第一個getCause沒有getCause。有任何想法嗎?
感謝您的提示,但ExceptionUtils.getRootCause似乎只返回「org.apache.xalan.xsltc.TransletException」,所以我猜這個異常沒有原因,因此無法使用嵌套的異常進行追蹤。 – brunnsbe