我开发了一个 EJB 服务,而我的服务只能抛出一种类型的异常 - MyServiceException
. 即所有发生的异常都被包装MyServiceException
并重新抛出给客户端。但我不想向客户端显示堆栈跟踪(出于安全原因),我只想记录此堆栈跟踪并仅向客户端显示错误消息。因此,只需编写以下代码就足够了:
catch (Exception e) {
logger.error("Error when creating account", e);
throw new MyServiceException("Error when creating account" + e.getMessage());
}
但是如果我有一堆方法怎么办:1 -2 -3。并且方法 3 用消息引发有意义的异常"Not enough money"
,所以我想将此消息显示给客户端。但是方法 2 用新消息重新包装了这个异常"Some problem with your credit card"
,所以在方法 1 中调用e.getMessage()
只会返回"Some problem with your credit card"
,而不是"Not enough money"
.. 在这种情况下如何处理异常?如何获取我抛出的所有消息?