国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

淺析java異常棧

2024-07-13 10:14:29
字體:
來源:轉載
供稿:網友

我們給大家通過實例代碼分析了java異常棧的函數用法并在下面給大家整理了Java獲取異常堆棧信息的兩種方法,以下是全部內容:

(stack trace)異常棧軌跡是指:

當throw Throwable 時,Throwable對象拋出過程(穿梭)所經歷的多個方法調用層(方法調用棧)。越接近 throw 語句的方法先進入異常棧。

(Throwable Causal Chain)異常原因鏈:

在Throwable類中的cause屬性,表示被當前異常包裝的原始異常。(可以稱為異常原因)

在打印異常棧軌跡時,會遞歸打印 原始異常的異常棧。

現在來分析一下 Throwable.printStackTrace() 方法。

在Throwable.printStackTrace(PrintStreamOrWriter s) 內部,我們可以看到:

在打印異常棧時,是先打印 當前異常對象this的異常棧。

然后再打印 異常原因鏈。(遞歸打印 原始異常的異常棧)

synchronized (s.lock()) {   // Print our stack trace// 1. 先打印 當前異常對象this的 異常棧。   s.println(this);   StackTraceElement[] trace = getOurStackTrace();   for (StackTraceElement traceElement : trace)    s.println("/tat " + traceElement);   // Print suppressed exceptions, if any   for (Throwable se : getSuppressed())    se.printEnclosedStackTrace(s, trace, SUPPRESSED_CAPTION, "/t", dejaVu);   // Print cause, if any// 2. 打印 異常原因鏈   Throwable ourCause = getCause();   if (ourCause != null)    ourCause.printEnclosedStackTrace(s, trace, CAUSE_CAPTION, "", dejaVu);  }

Java獲取異常堆棧信息

方法一:

public static String getStackTrace(Throwable t) {  StringWriter sw = new StringWriter();  PrintWriter pw = new PrintWriter(sw);  try {    t.printStackTrace(pw);    return sw.toString();  } finally {    pw.close();  }}

方法二:

org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace(e);


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙南县| 闸北区| 湛江市| 株洲县| 梅州市| 保定市| 安溪县| 丹江口市| 昌江| 南川市| 四平市| 化州市| 晋中市| 江都市| 子洲县| 吉木乃县| 霸州市| 汶上县| 桦南县| 宿松县| 长葛市| 兴隆县| 华坪县| 宜黄县| 阿勒泰市| 贺兰县| 尼勒克县| 项城市| 治多县| 四子王旗| 永新县| 丹阳市| 抚松县| 淮北市| 大冶市| 泸水县| 道真| 西昌市| 镇原县| 仙居县| 阿克陶县|