
Java 9에서는 Thread.getStackTrace() 또는 Throwable.getStackTrace() 및 SecurityManager.getClassContext()의 대안으로 StackWalker API 를 도입했습니다. 이 API의 목표는 필요한 스택 프레임을 탐색하고 구체화하여 필요할 때 추가 스택 프레임에 대한 효율적인 지연 액세스를 허용하는 메커니즘입니다.
예외 스택 추적의 각 스택 요소에 액세스해야 하는 경우 Throwable 클래스의 getStackTrace() 메서드를 사용할 수 있습니다. StackTraceElements의 배열을 반환합니다.
예
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.util.*;
<strong>
</strong> class Test1 {
public void test() throws Exception {
Test2 test2 = new Test2();
test2.test();
}
}
<strong>
class Test2 {
public void test() throws Exception {
System.out.println(1/0);
}
}
<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);
}
}
}
|
로그인 후 복사
출력
1 2 3 | <strong>Test2.test(StackWalkerTest.java:14)
Test1.test(StackWalkerTest.java:7)
StackWalkerTest.main(StackWalkerTest.java:23)</strong>
|
로그인 후 복사
위 내용은 Java 9에서 StackWalker의 각 스택 요소에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!