欢迎访问我的个人博客:我心永恒

Exception Translation

原文地址: Exception Translation

欢迎访问我的博客: http://blog.duhbb.com/

引言

这个词是我在看 Spring 源码的时候看到的, 以为是一个比较高深的东西, 后来查了一下原来就是异常转换.

什么是 Exception Translation?

Exception translation (or exception conversion) 就是将一种类型的异常转为另一种类型的异常.

Java 中进行异常的转换十分简单:

try {
  // code that can throw FooException
} catch(FooException e) {
  // convert FooException to BarException
  throw new BarException(e);
}

为什么要 Exception Translation?

有时候我们需要将一种类型的异常转换为另一种类型的异常.

异常转换的典型用法就是当第三方的异常和你自己应用中的异常不匹配时, 可以进行转换.

可能的原因包括:

  • 第三方库中抛出的异常比较底层, 或者你不想暴露应用的实现细节. 比如你可能倾向于使用 GenericDataAccessException 而不是更底层的 SQLException.
  • 第三方的库使用的是受检查的异常, 而你倾向使用运行时异常.

异常转换对于数据访问层就比较有用. 数据访问层会尽量隐藏所有的实现细节以及基本的持久化机制: 不论是通过数据库还是通过读取文件. 然而每个持久层可能有自己特定的异常, 数据库可能是 SQLException, 文件读取可能是 IOException. 如果程序其他的部分要隔离的话, 就不能将特定的异常抛给它们, 而是要进行转换.

原文地址: Exception Translation

欢迎访问我的博客: http://blog.duhbb.com/

posted @ 2022-06-07 11:45  tuhooo  阅读(61)  评论(0编辑  收藏  举报

欢迎访问我的个人博客:我心永恒