Obtenha rastreio como console.error () com a produção de uma mensagem de erro [duplicado]
Dec 13 2020
Quando eu faço isso, console.error('Custom Error')
eu obtenho um bom traço de onde veio
Por exemplo:
func1();
function func1() {
func2();
}
function func2() {
func3();
}
function func3() {
console.error('Custom Error');
}
Eu recebo:

Como posso fazer isso sem produzir um erro, mais parecido console.log()
?
Respostas
Danziger Dec 13 2020 at 06:44
Você pode usar em console.trace()vez de console.error().
Isso é o que você vê no console com console.trace()
:
Trace
func3 @ js:24
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12
E isso com console.error()
:
Custom Error
console.error @ snippet-javascript-console.min.js?v=1:1
func3 @ js:23
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12
Se você deseja obter o rastreamento de pilha em uma variável em vez de apenas registrá-lo, você pode usar Error.captureStackTrace(targetObject)ou Error().stack, mas ambos não são padrão:
func1();
function func1() {
func2();
}
function func2() {
func3();
}
function func3() {
const fakeErrorObject = {};
Error.captureStackTrace(fakeErrorObject)
const captureStackTraceTrace = fakeErrorObject.stack;
const errorStackTrace = Error('Foo').stack;
console.log(captureStackTraceTrace.replaceAll('at', '👉'));
console.log(errorStackTrace.replaceAll('at', '👉'));
}
.as-console-wrapper {
max-height: none !important;
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino