我的节点服务器在无法解析以下行中的JSON时终止:
var json = JSON.parse(message);
我读了this thread关于如何捕获节点中的异常,但我仍然不确定在这个语句中包装try和catch块的正确方法是什么。我的目标是捕获异常并将错误记录到控制台,当然还能使服务器保持活动状态。谢谢。
答案 0 :(得分:73)
一切都很好! : - )
JSON.parse
运行同步,并且对Node.js中经常使用的err
参数一无所知。因此,您的行为非常简单:如果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.
}
就是这样! : - )