ps里的堆栈操作 这个这个堆栈跟踪信息是什么个意思?怎么解决?

这个这个堆栈跟踪信息是什么个意思?怎么解决?一个简短的回答:堆栈信息是在初始化异常对象时填写的。这个问题真令人困惑。似乎堆栈在调用test1时抛出了一个异常,而test1的堆栈在调用test2时被重用

这个这个堆栈跟踪信息是什么个意思?怎么解决?

一个简短的回答:堆栈信息是在初始化异常对象时填写的。这个问题真令人困惑。似乎堆栈在调用test1时抛出了一个异常,而test1的堆栈在调用test2时被重用。。。事实上,情况并非如此。您可以做一个实验:在main函数的第一行(调用test1之前)写一个句子Class.forName类(“sysexception”),或sysexception XXX=new sysexception(1234),然后执行代码,您会发现虽然打印了两个相同的堆栈信息,但堆栈信息与test1无关。。。本质上,原始代码在调用test1时需要使用sysexception类,然后在执行类的静态初始化时创建系统,此时填写exception对象的堆栈信息。因此,在实践中,需要抛出的异常对象要么创建一个新对象,要么再次抛出catch对象。