如何在 JavaScript 中记录没有堆栈跟踪的错误消息?
How to log an error's message without stack trace in JavaScript?
我想在不退出程序的情况下记录发生的错误,所以我将可能引发错误的代码包含在这样的 try-catch
块中
try
{
let query = parseStatement(input); // might throw an error
console.log(query);
}
catch (err)
{
console.error(err); // logs the entire error with stack trace
}
finally
{
this.prompt();
}
我想要获得的输出是没有整个堆栈跟踪的错误消息。
大致如下:
Error: Missing semicolon at the end of statement: <statement>
而不是
Error: Missing semicolon at the end of statement: <statement>
at error (/home/nic/dev/nodedb/src/errors.js:5:11)
at Function.tokenize (/home/nic/dev/nodedb/src/tokens.js:53:13)
at parseStatement (/home/nic/dev/nodedb/src/sql.js:35:24)
at Shell.onData (/home/nic/dev/nodedb/src/shell.js:49:25)
at ReadStream.emit (node:events:394:28)
at addChunk (node:internal/streams/readable:312:12)
at readableAddChunk (node:internal/streams/readable:287:9)
at ReadStream.Readable.push (node:internal/streams/readable:226:10)
at TTY.onStreamRead (node:internal/stream_base_commons:190:23)
Error
对象有一个 .message
属性,所以不是打印整个错误,只是
console.error(error.message);
我想在不退出程序的情况下记录发生的错误,所以我将可能引发错误的代码包含在这样的 try-catch
块中
try
{
let query = parseStatement(input); // might throw an error
console.log(query);
}
catch (err)
{
console.error(err); // logs the entire error with stack trace
}
finally
{
this.prompt();
}
我想要获得的输出是没有整个堆栈跟踪的错误消息。 大致如下:
Error: Missing semicolon at the end of statement: <statement>
而不是
Error: Missing semicolon at the end of statement: <statement>
at error (/home/nic/dev/nodedb/src/errors.js:5:11)
at Function.tokenize (/home/nic/dev/nodedb/src/tokens.js:53:13)
at parseStatement (/home/nic/dev/nodedb/src/sql.js:35:24)
at Shell.onData (/home/nic/dev/nodedb/src/shell.js:49:25)
at ReadStream.emit (node:events:394:28)
at addChunk (node:internal/streams/readable:312:12)
at readableAddChunk (node:internal/streams/readable:287:9)
at ReadStream.Readable.push (node:internal/streams/readable:226:10)
at TTY.onStreamRead (node:internal/stream_base_commons:190:23)
Error
对象有一个 .message
属性,所以不是打印整个错误,只是
console.error(error.message);