parseJsonMsg(msg, jsonCallBack) {
try {
let content = JSON.parse(msg.content);
jsonCallBack(null, content);
} catch (err) {
console.log('[MSG processing ERROR]: ', err.message);
jsonCallBack(err);
}
}
此代码用于在无法解析消息时记录错误。 除了日志记录之外,如果无法解析,则会抛出语法错误。为什么会这样?如何处理?
任何建议都会很棒
答案 0 :(得分:2)
我怀疑这是你传入的方法作为抛出错误的参数。确保jsonCallBack执行自己的错误处理。你收到的错误是什么?
可以在任何地方抛出错误,包括内部catch块。如果在catch块中抛出错误,它将覆盖堆栈,直到它被捕获或堆栈耗尽并且它成为未捕获的异常。
答案 1 :(得分:0)
有点改写
parseJsonMsg(msg, jsonCallBack) {
var err;
var content;
try {
content = JSON.parse(msg.content);
} catch (ex) {
console.log('[MSG processing ERROR]: ', err.message);
err = ex;
}
jsonCallBack(err, content);
}
然后如上所述,解析错误将转发给jsonCallBack(err)
因此可能是调用者抛出错误。
要解决您的问题,您不应该对该调用jsonCallBack(err)
发表评论,但是,根据调用者的类型,绑定其错误处理程序,然后决定该怎么做。