स्टैक वॉकिंग API कॉल स्टैक से जानकारी निकालने और निकालने के लिए एक लचीला तंत्र प्रदान कर सकता है जो हमें आलसी तरीके से फ्रेम को फ़िल्टर और एक्सेस करने की अनुमति देता है। स्टैकवॉकर क्लास स्टैक वॉकिंग एपीआई का प्रवेश बिंदु है। स्टैक ट्रेस एक कॉल स्टैक . का प्रतिनिधित्व है k एक निश्चित समय पर जिसमें प्रत्येक तत्व एक विधि . का प्रतिनिधित्व करता है आह्वान . इसमें एक थ्रेड की शुरुआत से लेकर उसके जनरेट होने तक सभी इनवोकेशन शामिल हैं।
नीचे दिए गए उदाहरण में, हम StackWalker API का उपयोग करके मौजूदा थ्रेड के सभी स्टैक फ़्रेम को प्रिंट/डिस्प्ले कर सकते हैं।
उदाहरण
आयात करें ) अपवाद फेंकता है {विधि test1Method =Helper1.class.getDeclaredMethod ("टेस्ट 1", (कक्षा []) शून्य); test1Method.invoke (शून्य, (ऑब्जेक्ट []) शून्य); }}// हेल्पर1 वर्ग क्लास हेल्पर 1 {संरक्षित स्थिर शून्य परीक्षण 1 () { हेल्पर 2. टेस्ट 2 (); }}// Helper2 वर्ग वर्ग हेल्पर 2 { संरक्षित स्थैतिक शून्य परीक्षण 2 () { सूची<स्टैकफ्रेम स्टैक =StackWalker.getInstance().walk ((ओं) -> एस.एकत्र करें (कलेक्टर.toList ())); for(StackFrame फ्रेम:स्टैक) { System.out.println (फ्रेम।getClassName() + " " + फ्रेम।getLineNumber() + " " + फ्रेम।getMethodName() ); } }}आउटपुट
Helper2 23 test2Helper1 16 test1StackWalkerTest 9 main