발생한 예외의 추적 가져오기
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 예외에 대한 스택 추적을 효과적으로 얻을 수 있으므로 더욱 강력한 오류 처리 및 디버깅이 가능합니다. .
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3