"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como capturar rastreamentos de pilha de exceções personalizadas em JavaScript?

Como capturar rastreamentos de pilha de exceções personalizadas em JavaScript?

Publicado em 2024-11-08
Navegar:281

How to Capture Stack Traces of Custom Exceptions in JavaScript?

Obtendo um conjunto de exceções lançadas

Embora o JavaScript permita que exceções sejam levantadas, obter um rastreamento de pilha para uma exceção personalizada pode ser um desafio . Este artigo explora vários métodos para recuperar rastreamentos de pilha especificamente para exceções definidas pelo usuário.

A propriedade stack de um objeto Error fornece uma solução simples. Ao criar um novo objeto Error e acessar sua propriedade stack, você pode capturar um rastreamento:

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

Esta abordagem gera um rastreamento de pilha semelhante a:

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

Este formato fornece a função de chamada, URL e funções de chamada sucessivas.

Para navegadores modernos, um método mais direto está disponível:

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

Esta função captura um rastreamento de pilha e o exibe no console.

Uma opção alternativa foi proposta no tópico original:

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);
}

Essa função percorre recursivamente a pilha de chamadas e constrói uma string de rastreamento de pilha.

Ao implementar esses métodos, os desenvolvedores podem obter rastreamentos de pilha de forma eficaz para exceções JavaScript personalizadas, permitindo tratamento de erros e depuração mais robustos .

Declaração de lançamento Este artigo foi reimpresso em: 1729175015 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3