web-dev-qa-db-ja.com

JSON.parse中にノードで例外をキャッチ

次の行でJSONを解析できない場合、ノードサーバーが停止します。

var json = JSON.parse(message);

ノードで例外をキャッチする方法について このスレッド を読みましたが、このステートメントをtry and catchブロックでラップする適切な方法はまだわかりません。私の目標は、例外をキャッチしてコンソールにエラーを記録し、もちろんサーバーを稼働状態に保つことです。ありがとうございました。

38
Hahnemann

大丈夫だよー! :-)

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.
}

それでおしまい! :-)

74
Golo Roden