エラーオブジェクトの作成 | throwによるエラー発生 | JavaScript 超完全入門 基本から発展までのすべて

スポンサーリンク
スポンサーリンク

エラーオブジェクトの作成とは?

JavaScriptでは、throw文を使ってエラーをスローする際、エラーオブジェクトを作成してエラーの詳細を表すことができます。エラーオブジェクトは、エラーメッセージやスタックトレースなど、デバッグに必要な情報を含む便利なオブジェクトです。これにより、エラーが発生した理由や発生場所を特定しやすくなります。

エラーオブジェクトの種類

JavaScriptには、標準で提供されているいくつかのエラーオブジェクトがあります。これらは、エラーの種類に応じて自動的に生成されるか、手動で作成することができます。代表的なエラーオブジェクトは以下の通りです。

エラーオブジェクト 説明
Error 一般的なエラーを表すオブジェクト。独自エラーのベースとして使用される。
ReferenceError 存在しない変数を参照した場合にスローされるエラー。
TypeError 無効なデータ型に対して操作を行った場合にスローされるエラー。
SyntaxError 構文が正しくない場合にスローされるエラー。
RangeError 無効な数値範囲を使用した場合にスローされるエラー。
URIError 無効なURI(エンコードやデコード時のエラー)に対してスローされるエラー。

エラーオブジェクトの作成とスロー

エラーオブジェクトは、throw文を使ってスローすることができます。Errorオブジェクトは、カスタムエラーメッセージを持たせることが可能です。また、独自のエラーオブジェクトを作成することで、特定の状況に応じたエラーメッセージやエラー処理をカスタマイズすることができます。

プログラムの解説

以下の例では、Errorオブジェクトを作成してカスタムメッセージをスローしています。

function checkValue(value) {
    if (value < 0) {
        throw new Error("値が0未満です: " + value); // エラーオブジェクトを作成してスロー
    }
    return "値は正常です: " + value;
}

try {
    console.log(checkValue(-1)); // エラーを発生させる
} catch (error) {
    console.error("エラーが発生しました: " + error.message); // エラーをキャッチして処理
}

このJavaScriptコードでは、値が0未満の場合にErrorオブジェクトを作成し、エラーメッセージと共にスローします。try...catch構文を使ってエラーをキャッチし、エラーメッセージがコンソールに表示されます。

カスタムエラーオブジェクトの作成

JavaScriptでは、Errorクラスを継承してカスタムエラーを作成することも可能です。これにより、独自のエラータイプを定義し、特定の状況に応じたエラー処理を行うことができます。

カスタムエラーオブジェクトの例

class CustomError extends Error {
    constructor(message) {
        super(message);
        this.name = "CustomError"; // エラー名をカスタマイズ
    }
}

function processValue(value) {
    if (value > 100) {
        throw new CustomError("値が100を超えています: " + value);
    }
    return "処理が完了しました: " + value;
}

try {
    console.log(processValue(150)); // カスタムエラーをスロー
} catch (error) {
    console.error(error.name + ": " + error.message); // カスタムエラーをキャッチして処理
}

この例では、CustomErrorクラスを定義し、通常のErrorクラスを継承しています。これにより、独自のエラータイプを作成し、エラーの名前やメッセージを自由にカスタマイズできます。

エラーオブジェクトのプロパティ

標準的なエラーオブジェクトには、以下のプロパティがあります。これらを使用してエラーの詳細を取得できます。

プロパティ 説明
name エラーの名前。たとえば、TypeErrorReferenceError
message エラーのメッセージ。
stack エラーが発生した時点のスタックトレース。

まとめ

JavaScriptでは、throw文を使ってエラーオブジェクトをスローし、エラーメッセージやエラータイプを詳細に定義することができます。標準のエラーオブジェクトを利用するだけでなく、カスタムエラーを作成することで、特定の状況に応じたエラーハンドリングを行うことができます。また、エラーオブジェクトのプロパティを活用して、エラーの詳細な情報を取得することが可能です。