Lambda(node.js)でカスタム例外を作成する

Lambda(node.js)でカスタム例外を作成する

node.js v12でErrorオブジェクトを継承したカスタム例外クラスを作ってみます。

'use strict'
class CustomError extends Error {
  /**
   * コンストラクタ
   * @param {number} code エラーコード
   */
  constructor(code) {
    super(code)
    this.code = code
  }
  /**
   * Errorのネイティブオブジェクトを設定する
   * @param {object} error 発生したネイティブエラーオブジェクト
   */
  setError(error) {
    this.error = error
    return this
  }
  /**
   * メッセージを設定する
   * @param {string} errorMessage メッセージ
   */
  setErrorMessage(errorMessage) {
    this.errorMessage = errorMessage
    return this
  }
}
module.exports = CustomError

CustomErrorクラスを作成しました。

setterでreturn thisしているのでメソッドチェーンすることが可能です。

使い方は以下のように使えばよいです。

// errはErrorオブジェクト
  throw new CustomError(500)
          .setError(err)
          .setErrorMessage('特別なエラー')
// 以下もOK
  throw new CustomError(500)
          .setError({code: '例外'})
          .setErrorMessage('特別なエラー')

コメント

タイトルとURLをコピーしました