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 がないため、nullpointerexception しか返されません。何か案は?