在 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 输入意外结束

在异常期间捕获原始 HTTP POST 数据

架构比较 - 填充源模型期间捕获的意外异常:对象引用未设置为实例对象

如何在 Tensorflow 2 中的模型训练期间捕获任何异常

在处理关闭的结果集期间捕获了一个可抛出的异常:下一个