【Java】获取并打印当前堆栈的方法
生活随笔
收集整理的這篇文章主要介紹了
【Java】获取并打印当前堆栈的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原理
我們在最初接觸異常的時候,就會 try…catch… 語句:
try {//可能導致異常的操作 } catch (Exception e) {e.printStackTrace(); }當然這種 CatchAll 的做法不是很好,但確實打印了異常棧。
程序因異常而中斷,卻不能夠得到處理,只能拋出異常,按“要求”打印異常棧。
我們也知道 Throwable 是 Exception 的基類,所以參考異常棧打印的原理,使用Throwable對象獲取當前的程序運行堆棧,獲取的對象是StackTraceElement類型的一個數組,也就是一個一個的StackTraceElement對象。
然后做一下判空,就可以遍歷并打印了。
編程實現與測試
public class CallStack {private static void printCallStack() {Throwable exception = new Throwable();StackTraceElement[] stackTraceElements = exception.getStackTrace();if (stackTraceElements != null) {for (StackTraceElement element : stackTraceElements) {System.out.println(element.getClassName() + "/t" +element.getFileName() + "/t" + element.getLineNumber()+ "/t" +element.getMethodName());System.out.println("-----------------------------------");}}}public static void main(String[] args) {printCallStack();}}運行結果
將程序放在D盤根目錄下,用cmd運行:
總結
以上是生活随笔為你收集整理的【Java】获取并打印当前堆栈的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】处理 TypeError
- 下一篇: 【面向对象】面向对象的分析与设计概述