cause及异常链
来源:互联网 发布:什么是数据转换 编辑:程序博客网 时间:2024/05/27 14:13
异常链,在JDK1.4以后版本中,Throwable类支持异常链机制。Throwable 包含了其线程创建时线程执行堆栈的快照。它还包含了给出有关错误更多信息的消息字符串。最后,它还可以包含 cause(原因):另一个导致此 throwable 抛出的 throwable。它也称为异常链 设施,因为 cause 自身也会有 cause,依此类推,就形成了异常链,每个异常都是由另一个异常引起的。
通俗的说,异常链就是把原始的异常包装为新的异常类,并在新的异常类中封装了原始异常类,这样做的目的在于找到异常的根本原因。
通过Throwable的两个构造方法可以创建自定义的包含异常原因的异常类型:
Throwable(String message, Throwable cause)
构造一个带指定详细消息和 cause 的新 throwable。
Throwable(Throwable cause)
构造一个带指定 cause 和 (cause==null ? null :cause.toString())(它通常包含类和 cause 的详细消息)的详细消息的新 throwable。
getCause()
返回此 throwable 的 cause;如果 cause 不存在或未知,则返回 null。
initCause(Throwable cause)
将此 throwable 的 cause 初始化为指定值。
在Throwable的子类Exception中,也有类似的指定异常原因的构造方法:
Exception(String message, Throwable cause)
构造带指定详细消息和原因的新异常。
Exception(Throwable cause)
根据指定的原因和 (cause==null ? null : cause.toString()) 的详细消息构造新异常(它通常包含 cause 的类和详细消息)。
因此,可以通过扩展Exception类来构造带有异常原因的新的异常类。
通俗的说,异常链就是把原始的异常包装为新的异常类,并在新的异常类中封装了原始异常类,这样做的目的在于找到异常的根本原因。
通过Throwable的两个构造方法可以创建自定义的包含异常原因的异常类型:
Throwable(String message, Throwable cause)
构造一个带指定详细消息和 cause 的新 throwable。
Throwable(Throwable cause)
构造一个带指定 cause 和 (cause==null ? null :cause.toString())(它通常包含类和 cause 的详细消息)的详细消息的新 throwable。
getCause()
返回此 throwable 的 cause;如果 cause 不存在或未知,则返回 null。
initCause(Throwable cause)
将此 throwable 的 cause 初始化为指定值。
在Throwable的子类Exception中,也有类似的指定异常原因的构造方法:
Exception(String message, Throwable cause)
构造带指定详细消息和原因的新异常。
Exception(Throwable cause)
根据指定的原因和 (cause==null ? null : cause.toString()) 的详细消息构造新异常(它通常包含 cause 的类和详细消息)。
因此,可以通过扩展Exception类来构造带有异常原因的新的异常类。
- cause及异常链
- Error:Cause: peer not authenticated 异常
- 'Cause ...
- xfire webservice异常 java.lang.IllegalStateException: Can't overwrite cause
- 异常 -- Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
- 异常—Cause: java.sql.SQLException: Data source is closed
- 异常 -- Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
- was aborted. Call getNextException to see the cause.异常问题
- Spring 异常Does your handler implement a supported interface like Controller?] with root cause
- ibatis sql_Map中出现异常:Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate..
- 连抛2个异常,第一个是第二个的Cause
- hadoop tasktracker 异常:PriviledgedActionException as:adlog cause:ENOENT: No such file or directory
- Android studio 导入项目报 Error:Cause: peer not authenticated 异常
- Android studio 导入项目报 Error:Cause: peer not authenticated 异常
- MyBatis异常 Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException:
- Mybatis发生异常: Cause: java.sql.SQLException: ORA-00911: 无效字符
- Mybatis异常:Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lan
- 异常--Error querying database. Cause: java.lang.NumberFormatException: For input string:"xxx"
- JS实现空中落雪花
- android 4.0.3编译 总结
- Nick Vujicic Interview
- 汉字字符编码的科普笔记(GB2312汉字编码,Unicode与UTF-8,字符映射表,vim,文泉驿,正则表达式)
- AOOTWeek2 高效处理异常的三条规则
- cause及异常链
- 改密码了
- AOOTWeek2 Unchecked和Checked Exception的理解
- 浏览器到服务器端进行通信的简单理解
- java中类与类之间的关系
- MD5加密
- VC++中改变对话框背景颜色
- 我看过的好看的韩国电影
- JAVA 上加密算法的实现用例