首頁 > Java > java教程 > 如何在Java 9中存取StackWalker的每個堆疊元素?

如何在Java 9中存取StackWalker的每個堆疊元素?

王林
發布: 2023-09-05 11:13:02
轉載
1291 人瀏覽過

如何在Java 9中访问StackWalker的每个堆栈元素?

Java 9 引入了StackWalker API  作為Thread.getStackTrace()Throwable的替代方案.getStackTrace() SecurityManager.getClassContext()。此 API 的目標是一種遍歷和具體化所需堆疊幀的機制,允許在需要時有效地延遲存取其他堆疊幀。

如果我們需要存取異常堆疊追蹤的每個堆疊元素,那麼我們可以使用Throwable類別的getStackTrace()方法。它傳回 StackTraceElement 的陣列

範例

import java.util.*;

<strong>// Test1 class
</strong>class Test1 {
   public void test() throws Exception {
      Test2 test2 = new Test2();
      test2.test();
   }
}

<strong>// Test2 class</strong>
class Test2 {
   public void test() throws Exception {
      System.out.println(1/0);
   }
}

<strong>// Main class</strong>
public class StackWalkerTest {
   public static void main(String args[]) {
      Test1 test1 = new Test1();
      try {
         test1.test();
      } catch(Exception e) {
         <strong>Arrays.stream</strong>(e.<strong>getStackTrace()</strong>).<strong>forEach</strong>(System.out::println);
      }
   }
}
登入後複製

輸出

<strong>Test2.test(StackWalkerTest.java:14)
Test1.test(StackWalkerTest.java:7)
StackWalkerTest.main(StackWalkerTest.java:23)</strong>
登入後複製

以上是如何在Java 9中存取StackWalker的每個堆疊元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板