是什么

一种面向对象的编程技术,将捕获到的异常重新封装到一个新的异常中,并重新抛出。

有什么用

可以保留每一层的异常信息,用户查看异常的时候,能够从顶层异常信息看到底层异常信息。

怎么用

catch异常之后,将异常作为参数生成一个新的异常并抛出。

/*
* @author zongpeng qiao
* */
public class TextChainedException {
public static void main(String[] args) {
try {
//throw original exception
throw new FileNotFoundException("oops, no file");
} catch (Exception ex) {
//catch exception and make it into a new exception as member param cause.
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
}

运行以上代码,会得到以下错误(Caused by 部分就是底层的异常信息)

最新文章

  1. Js文件中文乱码
  2. 监听器初始化Job、JobTracker相应TaskTracker心跳、调度器分配task源码级分析
  3. PHP开发模式之代理技术
  4. kettle菜鸟学习笔记1----相关准备知识
  5. VMware 11完全安装Mac OS X 10.10
  6. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-006-定义切面使用xml
  7. 【ACM/ICPC2013】二分图匹配专题
  8. 本地搭建php环境
  9. 灰度共生矩阵(GLCM) 及matlab代码实现
  10. Git经常使用命令以及使用方法
  11. SNMP概述–运维必知的协议基础
  12. 自学python的日记分享
  13. LeetCode算法题-Poor Pigs(Java实现)
  14. 如何安装和配置RabbitMQ
  15. 020-并发编程-java.util.concurrent之-jdk6/7/8中ConcurrentHashMap、HashMap分析
  16. SQLPLUS SQLCMD连接管理oracle sqlserver的简单用法
  17. Tomcat 全攻略
  18. 剑指offer十八之二叉树的镜像
  19. 【Python】python3实现网页爬虫下载图片
  20. spring AOP 动态代理和静态代理以及事务

热门文章

  1. JQuery里ajax的表单传值serialize()用法
  2. yii2.0发送qq邮件详情配置
  3. 关于项目中的DAL数据接入层架构设计
  4. Oracle 数据库视图与基表的关系
  5. tmux分屏
  6. 【[NOI2016]区间】
  7. PHP不定维数组去除空值
  8. JavaScript小游戏--2048(PC端)
  9. C# DataSet导出Excel
  10. 如何在IAR工程中创建和使用模板