44

我的节点服务器在无法解析以下行中的 JSON 时死机:

var json = JSON.parse(message);

我阅读了有关如何在节点中捕获异常的线程,但我仍然不确定在此语句周围包装 try 和 catch 块的正确方法是什么。我的目标是捕获异常并将错误记录到控制台,当然还要让服务器保持活动状态。谢谢你。

4

1 回答 1

84

都很好!:-)

JSON.parseerr同步运行并且对Node.js 中经常使用的参数一无所知。因此,您的行为非常简单:如果 JSON 解析良好,则JSON.parse返回一个对象;如果没有,它会抛出一个你可以用 捕获的异常,try / catch就像这样:

webSocket.on('message', function (message) {
  var messageObject;

  try {
    messageObject = JSON.parse(message);
  } catch (e) {
    return console.error(e);
  }

  // At this point, messageObject contains your parsed message as an object.
}

就是这样!:-)

于 2013-01-18T04:01:02.260 回答