我目前正在重写一个后端正在使用的旧版Web应用程序,其中包括CORBA和另一个RPC框架-它们都已经很老了并且没有Spring支持。

我的希望是,我最终可以编写一个@Repository类来处理CORBA和其他RPC调用,并用某种DataAccessException封装所有异常,然后将其抛出。

我的问题是

  • 是执行此操作的最佳实践,这样我的存储库就不会在同一个存储库方法可能同时抛出CORBA和RPC异常的区域中抛出过多的DataAccessExceptions
  • 应该在存储库类“下方”有一个类来处理其中的某些并将其抽象化吗?或者从技术上讲,存储库类是干什么用的?
  • 最佳答案

    在没有任何社区反馈的情况下,我认为我应该发布实现程序,这绝不是福气,甚至可能有点味道。

    为了使调用我的业务层(标有@Service的类)的代码只需要担心一个异常(即DataAccessException),业务层中或下方的代码所引发的任何/所有异常都被包装为某种DataAccessException形式。这听起来很可笑的原因是,业务逻辑可能合法地抛出与数据访问无关的异常,例如,验证。

    但是,这个想法是不要让我的servlet带有多个catch块或try { ... } catch (Exception ex) { ... }的反模式。

    再说一次,这不是一个真正的答案,但我想它确实有效。

    09-25 21:41