Если getCause()
возвращает ноль, то у javax.xml.transform.TransformerException
на самом деле нет причины.Когда создается исключение, вам нужно указать причину, и они, вероятно, этого не сделали.Вы, вероятно, не можете ничего с этим поделать.
Вы можете проверить, может ли
Один метод просто использовать совпадение строк в Exception @ getMessage:
...
} catch (Exception e) {
if (e.getMessage().contains("ClientAbortException:")) {
// at least log the error, in case you've got something wrong
} else {
throw e;
}
} finally {
...
Однако это может быть ненадежным по очевидной причине, которая зависит от текста сообщения.
РЕДАКТИРОВАТЬ: Думая об этом, вы можете обнаружить в производстве, что перехват этого исключения - плохая идея, иличто вы ошиблись в коде, поэтому хорошей идеей может быть добавление метода для включения или отключения этого поведения:
...
} catch (Exception e) {
if (System.getProperty("abort.when.ClientAbortException") == null && e.getMessage().contains("ClientAbortException:")) {
// at least log the error, in case you've got something wrong
...
Тогда у вас по крайней мере есть возможность отключить код.System.getProperty является лишь примером.