Javascript 已经在try/catch块中的JSON.parse仍然抛出语法错误
当无法解析消息时,此代码用于记录错误。 除了日志记录之外,如果无法解析,还会引发语法错误。为什么会这样?如何处理Javascript 已经在try/catch块中的JSON.parse仍然抛出语法错误,javascript,json,node.js,callback,Javascript,Json,Node.js,Callback,当无法解析消息时,此代码用于记录错误。 除了日志记录之外,如果无法解析,还会引发语法错误。为什么会这样?如何处理 任何建议都很好我怀疑是您作为参数传入的方法引发了错误。确保jsonCallBack执行自己的错误处理。您收到的错误是什么 错误可以在任何地方抛出,包括catch块内部。如果在catch块中抛出错误,它将渗透堆栈,直到捕获错误或堆栈耗尽,并成为未捕获的异常。重写位 parseJsonMsg(msg, jsonCallBack) { try { let content = J
任何建议都很好我怀疑是您作为参数传入的方法引发了错误。确保jsonCallBack执行自己的错误处理。您收到的错误是什么 错误可以在任何地方抛出,包括catch块内部。如果在catch块中抛出错误,它将渗透堆栈,直到捕获错误或堆栈耗尽,并成为未捕获的异常。重写位
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(err)
因此,可能是调用方抛出了错误
要解决您的问题,您不应该注释该调用
jsonCallBack(err)
,但根据调用方的类型,绑定其错误处理程序,然后决定要执行的操作。抛出的错误消息是什么?在这些行中的哪一行抛出?似乎您忘记了function关键字。function关键字在很多行中都不是必需的cases@0x539这可能是一种上课的方法。是的,我知道。但是看看他的代码,我不确定它是否是一个属性。你的评论帮助我找出了错误。谢谢,我是javascript新手。函数预期此回调时出错。感谢您的详细响应。这有帮助。
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);
}