"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 recuperar rastreamentos de pilha para exceções de JavaScript personalizadas?

Como recuperar rastreamentos de pilha para exceções de JavaScript personalizadas?

Publicado em 2024-11-14
Navegar:532

How to Retrieve Stack Traces for Custom JavaScript Exceptions?

Obtendo rastreamentos de pilha JavaScript para exceções personalizadas

Ao executar seu código JavaScript, as exceções podem fornecer informações valiosas sobre os problemas encontrados pelo seu script. No entanto, obter rastreamentos de pilha para exceções lançadas por você mesmo representa um desafio. Este artigo aborda esse problema e fornece soluções para obter rastreamentos de pilha especificamente para suas próprias exceções.

Inicialmente, só era possível obter rastreamentos de pilha para exceções JavaScript integradas. No entanto, os avanços nos navegadores modernos introduziram novas técnicas para resolver essa limitação.

Console.trace() para navegadores modernos

Em navegadores recentes, o console.trace( ) está disponível. Ao chamá-lo, você pode obter um rastreamento de pilha que inclui o local da invocação console.trace().

console.trace();

Error Stack Property para todos os navegadores

Uma solução refinada compartilhada pelos comentaristas da pergunta original envolve a utilização da propriedade stack de um objeto Error.

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

Essa abordagem fornece um rastreamento de pilha detalhado semelhante à saída gerada por console.trace():

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

Função de rastreamento de pilha personalizada

Em navegadores mais antigos que não suportam esses métodos, uma função mais complexa pode ser usada para obter um rastreamento de pilha personalizado:

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);
}
Declaração de lançamento Este artigo é reproduzido em: 1729175239 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