エラーメッセージを生成してconsole.error()のようなトレースを取得します[重複]
Dec 13 2020
私がそうするとき、私はconsole.error('Custom Error')
それがどこから来たのかについての素晴らしい痕跡を得る
例えば:
func1();
function func1() {
func2();
}
function func2() {
func3();
}
function func3() {
console.error('Custom Error');
}
私は得る:

エラーを発生させずにこれを行うにはどうすればよいconsole.log()
ですか?
回答
Danziger Dec 13 2020 at 06:44
のconsole.trace()代わりに使用できますconsole.error()。
これは、コンソールに表示されるものですconsole.trace()
。
Trace
func3 @ js:24
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12
そしてこれで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
スタックトレースを単にログに記録するのではなく変数に入れたい場合は、Error.captureStackTrace(targetObject)またはを使用できますError().stackが、どちらも非標準です。
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;
}