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);
}