JavaScriptにおけるカスタム例外の書き方をメモしておく。
カスタム例外の書き方
カスタム例外を作成することで、例外処理でどのようなエラーが発生したか細かく判別できるようになる。カスタム例外は、組み込みのError
クラスを継承して、その中にコンストラクタを定義する。サンプルが以下のようになる。
カスタム例外クラス
class MyError extends Error {
constructor(message) {
super(message);
this.name = "MyError";
}
}
ここで、this.name = "MyError";
を記述してname
プロパティを正しい名前に上書きしている。これを記述しないとerror.name
はError
のままになってします。ただし、instanceof
でのエラー判別は正常に動作する。これを使って例外処理を書いてみると以下のようになる。
例外処理
try {
throw new MyError("カスタム例外が発生しました。");
} catch (error) {
if (error instanceof MyError) {
console.log(error); // MyError: カスタム例外が発生しました。
console.log(error.message); // カスタム例外が発生しました。
console.log(error.name); // MyError
} else {
console.log(error);
}
}