Java 9 で StackWalker の各スタック要素にアクセスするにはどうすればよいですか?

王林
リリース: 2023-09-05 11:13:02
転載
1224 人が閲覧しました

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

Java 9 では、StackWalkerAPIThread.getStackTrace()またはThrowable 代替手段として導入されました。 .getStackTrace()およびSecurityManager.getClassContext()に。この API の目的は、必要なスタック フレームをトラバースして実体化し、必要なときに追加のスタック フレームへの効率的な遅延アクセスを可能にするメカニズムです。

例外スタック トレースの各スタック要素にアクセスする必要がある場合は、ThrowableクラスのgetStackTrace()メソッドを使用できます。 StackTraceElements のarrayを返します。

import java.util.*; // Test1 class class Test1 { public void test() throws Exception { Test2 test2 = new Test2(); test2.test(); } } // Test2 class class Test2 { public void test() throws Exception { System.out.println(1/0); } } // Main class public class StackWalkerTest { public static void main(String args[]) { Test1 test1 = new Test1(); try { test1.test(); } catch(Exception e) { Arrays.stream(e.getStackTrace()).forEach(System.out::println); } } }
ログイン後にコピー

出力

Test2.test(StackWalkerTest.java:14) Test1.test(StackWalkerTest.java:7) StackWalkerTest.main(StackWalkerTest.java:23)
ログイン後にコピー

以上がJava 9 で StackWalker の各スタック要素にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!