博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常:调用链顺序
阅读量:5298 次
发布时间:2019-06-14

本文共 1637 字,大约阅读时间需要 5 分钟。

在异常调用链当中:异常对象创建顺序(栈内进行),和异常堆栈链显示顺序恰好相反(出栈顺序)

源码:

package lsh.element;public class ExceptionChains {    public static void main(String[] args) {        try {            method1();        } catch (Exception2 e) {            e.printStackTrace();        }    }    public static void method1() throws Exception2 {
// 靠近栈顶,所以消息先出栈;后实例化 try { method2(); } catch (Exception2 e) { throw new Exception2("New info from method1", e); } } public static void method2() throws Exception2 {
// 靠近栈底,所以消息后出栈;先实例化 throw new Exception2("New info from method2"); }}class Exception2 extends Exception { private static final long serialVersionUID = 1L; static { System.out.println("Exception2 - static"); } { System.out.println("Exception2 - instance"); } Exception2(String msg) { super(msg); System.out.println("Exception2 - init"); } public Exception2(String message, Throwable cause) { super(message, cause); System.out.println("Exception2 - init2"); }}

执行结果:

Exceptin2 - staticException2 - instanceException2 - initException2 - instanceException2 - init2lsh.element.Exception2: New info from method1    at lsh.element.ExceptionChains.method1(ExceptionChains.java:16)    at lsh.element.ExceptionChains.main(ExceptionChains.java:6)Caused by: lsh.element.Exception2: New info from method2    at lsh.element.ExceptionChains.method2(ExceptionChains.java:21)    at lsh.element.ExceptionChains.method1(ExceptionChains.java:14)    ... 1 more

以上:上半部分是栈内正常执行顺序;下半部分的异常信息顺序。

转载于:https://www.cnblogs.com/InformationGod/p/9716224.html

你可能感兴趣的文章
这又是一个测试
查看>>
Github入门操作实录
查看>>
生成300道小学四则运算题
查看>>
Windows怎么从命令行下载文件
查看>>
Chrome 及其 插件“个性化设置”备份
查看>>
第二章ARP——地址解析协议
查看>>
BIO模型
查看>>
前端开发 --- CSS参考手册
查看>>
认识迅雷界面引擎
查看>>
/* 搜索文件的method */
查看>>
Pandas_实现数字顺序填充、指定值交替填充、日期顺序填充(按日、月、年)
查看>>
第八章博客
查看>>
解决input为number类型时maxlength无效的问题
查看>>
使用C#加密及解密字符串
查看>>
MYSQL 5.7 新增150多个新功能
查看>>
UE导航系统详
查看>>
软件测试作业3
查看>>
环境准备—之—linux下安装jdk
查看>>
VB类的应用
查看>>
贪吃蛇
查看>>