ps里的堆棧操作 這個這個堆棧跟蹤信息是什么個意思?怎么解決?
這個這個堆棧跟蹤信息是什么個意思?怎么解決?一個簡短的回答:堆棧信息是在初始化異常對象時填寫的。這個問題真令人困惑。似乎堆棧在調(diào)用test1時拋出了一個異常,而test1的堆棧在調(diào)用test2時被重用
這個這個堆棧跟蹤信息是什么個意思?怎么解決?
一個簡短的回答:堆棧信息是在初始化異常對象時填寫的。這個問題真令人困惑。似乎堆棧在調(diào)用test1時拋出了一個異常,而test1的堆棧在調(diào)用test2時被重用。。。事實上,情況并非如此。您可以做一個實驗:在main函數(shù)的第一行(調(diào)用test1之前)寫一個句子Class.forName類(“sysexception”),或sysexception XXX=new sysexception(1234),然后執(zhí)行代碼,您會發(fā)現(xiàn)雖然打印了兩個相同的堆棧信息,但堆棧信息與test1無關(guān)。。。本質(zhì)上,原始代碼在調(diào)用test1時需要使用sysexception類,然后在執(zhí)行類的靜態(tài)初始化時創(chuàng)建系統(tǒng),此時填寫exception對象的堆棧信息。因此,在實踐中,需要拋出的異常對象要么創(chuàng)建一個新對象,要么再次拋出catch對象。