parseJsonMsg(msg, jsonCallBack) {
try {
let content = JSON.parse(msg.content);
jsonCallBack(null, content);
} catch (err) {
console.log('[MSG processing ERROR]: ', err.message);
jsonCallBack(err);
}
}
此代码用于在无法分析消息时记录错误。除了日志记录之外,如果无法解析,这将引发语法错误。为什么会这样?如何处理?
任何建议都会很棒
我怀疑是您作为参数传入的方法引发了错误。确保 jsonCallBack 执行自己的错误处理。您收到的错误是什么?
错误可以抛出到任何地方,包括捕获块内部。如果在 catch 块中抛出错误,它将渗透到堆栈中,直到它被捕获或堆栈耗尽并成为未捕获的异常。
一点重写
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)
,但应根据调用方的类型,绑定其错误处理程序,然后决定要执行的操作。