服务层的异常包装器

时间:2014-03-27 17:57:31

标签: java spring exception architecture exception-handling

我在我们的一个工件中创建了一个@Component作为服务层,我想将来自这个新组件的所有可能异常包装到一个特定的工件Exception中(只是为了给它起一个名字)将是ArtifactException)。

我的问题是如何将此服务层或下面的层中发生的任何异常转换为ArtifactException

我正在寻找比以下更优雅的解决方案:(抓住并重新投掷)

 catch (NamingException ex){
      //EXCEPTION WRAPPING
      throw new ArtifactException(
        "Config error with JNDI and datasource, for db " + Util.quote(dbConnString), ex
      );
    }
    catch (SQLException ex ){
      //EXCEPTION WRAPPING
      throw new ArtifactException(
       "Cannot get connection from datasource, for db " + Util.quote(dbConnString), ex
      );
    }

我正在考虑将@AfterThrowing与方面结合使用,但我希望能够避免使用这些方面。

我知道@ExceptionHandler,但这适用于DispatcherServlet,因为我们在服务层工作没有实现,没有什么可以解决spring-mvc

还有其他选项可以使用Spring来处理这个问题吗?可能是我不知道的新注释或任何其他方法。

我认为我所看到的是Spring中服务层的异常翻译器

感谢。

0 个答案:

没有答案