자바 현재 방법 가 져 오기

3197 단어 자바
1.현재 방법 스 택 가 져 오기
 StackTraceElement[] stes = Thread.currentThread().getStackTrace();
현재 방법 을 얻 으 려 면 유연성 이 부족 하 다 는 것 을 기억 하고 배열 stes 의 고정 index 를 사용 하 십시오.
api 가 뭐라고 했 는 지 볼 까요?
getStackTrace
public StackTraceElement[] getStackTrace()

이 스 레 드 스 택 의 덤 프 를 표시 하 는 스 택 추적 요소 배열 을 되 돌려 줍 니 다.이 스 레 드 가 시작 되 지 않 았 거나 종료 되 었 다 면 이 방법 은 0 길이 의 배열 로 돌아 갈 것 입 니 다.
돌아 오 는 배열 이 0 길이 가 아니라면 첫 번 째 요 소 는 스 택 지붕 을 대표 합 니 다.이 배열 의 최신 방법 입 니 다.마지막 요 소 는 스 택 바닥 을 대표 하 며 이 시퀀스 에서 가장 오래된 방법 으로 호출 됩 니 다.
안전 관리자 가 있 고 이 스 레 드 가 현재 스 레 드 가 아니라면 통과 합 니 다. RuntimePermission("getStackTrace") 보안 관리자 권한 호출 checkPermission 방법,스 택 추적 을 가 져 올 수 있 는 지 확인 합 니 다.
일부 가상 컴퓨터 는 어떤 경우 에 스 택 추적 에서 하나 이상 의 스 택 프레임 을 생략 할 수 있 습 니 다.극단 적 인 상황 에서 이 스 레 드 스 택 추적 정보 가 없 는 가상 기 는 이 방법 에서 0 길이 의 배열 을 되 돌 릴 수 있다.
돌아 가기:
StackTraceElement 배열,각 배열 은 하나의 스 택 프레임 을 대표 합 니 다.
던 지기:SecurityException  - 보안 관리자 가 존재 하고 
checkPermission 방법 은 스 레 드 의 스 택 추적 을 가 져 올 수 없습니다.
다음 버 전부터:
1.5
별도로 참조 하 시기 바 랍 니 다:
SecurityManager.checkPermission(java.security.Permission)
RuntimePermissionThrowable.getStackTrace()
주의 하 세 요.빨간색 표 시 된 곳 은 창고 지붕 이 최신 방법 으로 호출 되 고 창고 바닥 은 가장 오래된 방법 으로 호출 됩 니 다.
2.실례:
/*TestDumpThread .java*/

public class TestDumpThread {

        //Dump the current thread stack trace.

    public static void getCurrentStackTrace() {

        StackTraceElement[] stes = Thread.currentThread().getStackTrace();

        for (StackTraceElement element : stes) {

            System.out.println(element);

        }

    }

 

    public static void main(String[] args) {

        getCurrentStackTrace();

    }

}

결 과 는 다음 과 같다.
java.lang.Thread.getStackTrace(Thread.java:1479)

TestDumpThread.getCurrentStackTrace(TestDumpThread.java:5)

TestDumpThread.main(TestDumpThread.java:12)

 
 

좋은 웹페이지 즐겨찾기