JavaScriptで開発をしていると、必ず出会うのがエラーです。初心者の方は、とりあえず「console.log(error)」で中身を確認して満足しがちですが、実はエラーオブジェクトの「name」プロパティを使いこなすと、デバッグの効率が劇的に変わります。
なぜ「name」プロパティが重要なのか
通常、エラーが発生すると「TypeError」や「ReferenceError」といった名前が自動で付きます。これらは「何が起きたか」を分類するためのラベルです。例えば、変数が未定義なら「ReferenceError」、型が違えば「TypeError」となります。この分類を意識するだけで、エラーの発生源を即座に特定できるようになります。
自分専用の「カスタムエラー」を作ってみよう
標準のエラーだけでなく、自分自身でエラーに名前を付けることができます。これが非常に強力です。例えば、APIからデータが取得できなかった際に、以下のように記述してみましょう。
const myError = new Error(“データが見つかりません”);
myError.name = “DataNotFoundError”;
このように名前を付けると、エラーハンドリングの際に以下のような分岐が可能になります。
try {
// 何らかの処理
} catch (e) {
if (e.name === “DataNotFoundError”) {
// ユーザーに「再読み込みしてください」と伝える処理
} else {
// それ以外のシステムエラーとしてログを送信する処理
}
}
現場で役立つ活用テクニック
実際の現場では、エラーを「ユーザーに見せるもの」と「開発者がログとして追うもの」に分けるのが鉄則です。nameプロパティを独自に定義しておけば、「これはユーザーに表示すべきエラーか、それともシステム内部のバグか」をプログラム側で自動判定できます。
「Error.prototype.name」を単なる文字列として無視せず、エラーを分類するための「タグ」として活用してみてください。これだけで、あなたの書くコードの堅牢性が一段上のレベルへと引き上げられますよ。まずは、小さなプロジェクトから自分なりのエラー名を作るところから始めてみましょう。