created: 2022-04-26T08:55:15.301Z

Tao of Node のエラー処理についてメモ

nodejs の特化した記事ではない。

  • express を使う時の定石
  • ソフトウェア開発での定石

ただし、nodejs 特有のエラーハンドリングの仕組みとその定石はよくわかってなかったので参考になった。

参考になった部分だけメモ。

エラーオブジェクトを使用するか拡張する

エラーオブジェクトを拡張する方法は2つあります。汎用的な AppError を作成するか、 ValidationError や InternalServerError のようにタイプに応じて特定のエラーclassを作成します。私のおすすめは、より一般的なエラーインスタンスにこだわり、ステータスコードを渡す方法です。

たしかに AppError クラス1つで色々やるほうが、型ガードとかチェックとか楽になりそう。

エラー処理モジュールを作る

process.on('uncaughtException', (error) => {
  handleError(error)
})

異常時に呼ぶ処理をまとめておくのはよさそう。