在我们的应用中,这些是使用的图层:
Rest Service Endpoint Layer --> Business Layer --> DAO --> ORM
现在,每个层都适当地转换其异常并将它们发送到下一层。例如,DAO Layer
创建DaoException
并向Business Layer
投掷,Bussiness Layer
将其转换为BusinessException
,并将其投放到RestService Layer
处理它的位置@Transactional
通过cxf映射器(好吧,不是在RestServiceLayer中)。
我们已将Business Layer
放在exception
的方法上。因此,如果在提交时发生异常,Rest Service Endpoint Layer
只能在RollBackException etc.
中看到。现在,我将不得不检查最顶层(Rest Service Endpoint Layer
)中与事务提交相关的异常(例如{{1}}),这会破坏每个层的目的翻译下一层的例外。
处理这种情况的好方法是什么?我是否应该根本不翻译异常并仅在最顶层处理所有异常?
答案 0 :(得分:0)
在抛出异常时编写注释驱动的AOP切入点,如果您真的想要翻译并将注释应用于业务层,请进行翻译。但我也建议不要翻译 - 你通过翻译获得了什么?