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('特別なエラー')

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント