我正在研究一些遗留代码,这些代码有一个非常丑陋和肮脏的黑客来处理我们从第三方服务获得的一些异常,但至少我们对它进行了测试。出于某种原因,黑客不在我正在处理的分支机构工作。
我们正在嘲笑该服务,并且我们抛出了有时从服务中获得的异常:
throw new EJBTransactionRolledbackException("SystemException: Entity not found: 'Item with id " + someId + "'. resultTextDetails: [] constraintViolations: []");
我们的黑客只是检查异常的消息并在之后做一些事情。真的很丑,但它确实有效:
public void exceptionHandling(final Throwable t){
if (t.getMessage().contains(PART_OF_EXCEPTION_TEXT)){
// some logic here
}
}
出于某种原因,t.getMessage()没有显示我们正在抛出的消息,而是"由"引起的消息。 stacktrace的一部分:
引起: COM ... ServiceProxiesNotWorkingException: 服务代理的重新连接失败!
我的问题:
感谢您的回答。