最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析java異常棧

 更新時間:2017年12月12日 08:47:03   作者:lyn_  
給大家通過一個簡單的代碼實例給大家分型了java異常棧問題,需要的朋友參考一下吧。

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

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

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

(Throwable Causal Chain)異常原因鏈:

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

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

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

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

在打印異常棧時,是先打印 當前異常對象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);

相關文章

  • Feign調(diào)用傳輸文件異常的解決

    Feign調(diào)用傳輸文件異常的解決

    這篇文章主要介紹了Feign調(diào)用傳輸文件異常的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 一篇文章帶你了解SpringBoot Web開發(fā)

    一篇文章帶你了解SpringBoot Web開發(fā)

    這篇文章主要介紹了使用Spring Boot搭建Java web項目及開發(fā)過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java中關于String的兩種賦值方式

    Java中關于String的兩種賦值方式

    這篇文章主要介紹了Java中關于String的兩種賦值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 一文學透ApplicationContext繼承接口功能及與BeanFactory區(qū)別

    一文學透ApplicationContext繼承接口功能及與BeanFactory區(qū)別

    這篇文章主要為大家介紹了ApplicationContext繼承接口功能及與BeanFactory區(qū)別示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Java使用Apache POI庫讀取Excel表格文檔的示例

    Java使用Apache POI庫讀取Excel表格文檔的示例

    POI庫是Apache提供的用于在Windows下讀寫各類微軟Office文檔的Java庫,這里我們就來看一下Java使用Apache POI庫讀取Excel表格文檔的示例:
    2016-06-06
  • 基于SpringBoot的SSMP的整合案例

    基于SpringBoot的SSMP的整合案例

    這篇文章主要介紹了SpringBoot整合SSMP的詳細教程,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • java中的轉義字符介紹

    java中的轉義字符介紹

    普通的轉義字符序列和八進制轉義字符都比Unicode轉義字符要好得多,因為與Unicode轉義字符不同,轉義字符序列是在程序被解析為各種符號之后被處理的
    2013-09-09
  • SpringBoot通過@MatrixVariable進行傳參詳解

    SpringBoot通過@MatrixVariable進行傳參詳解

    這篇文章主要介紹了SpringBoot使用@MatrixVariable傳參,文章圍繞@MatrixVariable展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Java對中文進行排序的實現(xiàn)示例

    Java對中文進行排序的實現(xiàn)示例

    工作中,我們經(jīng)常會遇到需要進行各種排序的需求,本文主要介紹了Java對中文進行排序的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • java設計模式之模板方法模式詳解

    java設計模式之模板方法模式詳解

    這篇文章主要為大家詳細介紹了java設計模式之模板方法模式的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評論

喀喇| 宁明县| 江陵县| 张家港市| 定兴县| 高雄县| 石台县| 庆云县| 黄龙县| 金湖县| 四子王旗| 南郑县| 中江县| 格尔木市| 金坛市| 泰来县| 广德县| 太保市| 上思县| 马龙县| 滨州市| 襄垣县| 六枝特区| 长岛县| 探索| 清原| 信丰县| 温泉县| 永寿县| 乌兰察布市| 钟祥市| 靖江市| 石家庄市| 乌鲁木齐县| 鄄城县| 滨州市| 大足县| 威海市| 长子县| 横峰县| 肥乡县|