"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript에서 사용자 정의 예외의 스택 추적을 캡처하는 방법은 무엇입니까?

JavaScript에서 사용자 정의 예외의 스택 추적을 캡처하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:490

How to Capture Stack Traces of Custom Exceptions in JavaScript?

발생한 예외의 추적 가져오기

JavaScript에서는 예외 발생을 허용하지만 사용자 정의 예외에 대한 스택 추적을 얻는 것은 어려울 수 있습니다. . 이 문서에서는 특히 사용자 정의 예외에 대한 스택 추적을 검색하는 다양한 방법을 살펴봅니다.

Error 개체의 stack 속성은 간단한 솔루션을 제공합니다. 새 Error 객체를 생성하고 해당 스택 속성에 액세스하면 추적을 캡처할 수 있습니다.

function stackTrace() {
    var err = new Error();
    return err.stack;
}

이 접근 방식은 다음과 유사한 스택 추적을 생성합니다.

DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44
DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9
.success@http://localhost:49573/:462
x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
.send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6

호출 함수, URL, 연속 호출 함수를 제공하는 형식입니다.

최신 브라우저의 경우 보다 간단한 방법을 사용할 수 있습니다.

console.trace(); // (MDN Reference)

이 함수는 스택 추적을 캡처하여 콘솔에 표시합니다.

원래 스레드에서 대체 옵션이 제안되었습니다:

function stacktrace() { 
  function st2(f) {
    return !f ? [] : 
        st2(f.caller).concat([f.toString().split('(')[0].substring(9)   '('   f.arguments.join(',')   ')']);
  }
  return st2(arguments.callee.caller);
}

이 함수는 호출 스택을 재귀적으로 탐색하고 스택 추적 문자열을 구성합니다.

이러한 메서드를 구현하면 개발자는 사용자 정의 JavaScript 예외에 대한 스택 추적을 효과적으로 얻을 수 있으므로 더욱 강력한 오류 처리 및 디버깅이 가능합니다. .

릴리스 선언문 이 글은 1729175015에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3