在 JSON.parse 期间在节点中捕获异常
Posted
技术标签:
【中文标题】在 JSON.parse 期间在节点中捕获异常【英文标题】:Catch exception in node during JSON.parse 【发布时间】:2013-01-01 18:16:09 【问题描述】:我的节点服务器在无法解析以下行中的 JSON 时死机:
var json = JSON.parse(message);
我阅读了 this thread 关于如何在节点中捕获异常的内容,但我仍然不确定在此语句周围包装 try 和 catch 块的正确方法是什么。我的目标是捕获异常并将错误记录到控制台,当然还要让服务器保持活动状态。谢谢。
【问题讨论】:
你能在上下文中显示这个吗?这叫什么? proper way to catch exception from javascript method JSON.parse的可能重复 【参考方案1】:一切都好! :-)
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.
就是这样! :-)
【讨论】:
这仍然有效还是有所改变? 但我需要确定这是 json 解析类型的异常@Golo Roden @Pankaj Cheema 只需在 catch 块中使用 if 语句。以上是关于在 JSON.parse 期间在节点中捕获异常的主要内容,如果未能解决你的问题,请参考以下文章
如何将单引号 (') 捕获到 JSON.parse 的字符串中?
未捕获的 SyntaxError:JSON.parse (<anonymous>) 处的 JSON 输入意外结束
架构比较 - 填充源模型期间捕获的意外异常:对象引用未设置为实例对象