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/
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律