Apache Tomcat (v6.0.32)에서 XML을 XHTML로 변환하는 데 Apache Xalan (v.2.7.1)을 사용하고 있습니다. 때때로 로딩은 클라이언트에 의해 취소됩니다 다음과 같은 예외가 발생합니다 :자바에서 중첩 예외를 잡는 방법
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가 없으므로 nullpointerexception 만 제공한다. 어떤 아이디어?
팁 주셔서 감사하지만 ExceptionUtils.getRootCause는 "org.apache.xalan.xsltc.TransletException"만 반환하는 것으로 보이므로 예외가 발생하지 않아 중첩 된 예외를 사용하여 추적 할 수 없습니다. – brunnsbe