エラーハンドリング(日本語)

JavaScript のエラーハンドリングは、コードの実行中に発生するランタイムエラーや例外を処理することを含みます。

効果的にエラーを処理するためには、さまざまな技術とメカニズムが利用可能です。

以下に、適切に活用することで JavaScript コードをより堅牢にし、例外的な状況に対処できるエラーハンドリングの技術とメカニズムを示します。

メソッド

  1. try-catch: コードブロックを試行し、例外が発生した場合はそれをキャッチし、例外処理コードブロックを実行します。これにより、例外がコードの実行を中断させずにエラーを処理できます。

  2. throw: 開発者が直接例外を throw して、例外を発生させることができます。特定の条件やエラーシチュエーションを示す際に使用されます。

  3. finally: try-catch 文と共に使用され、例外が発生するかどうかにかかわらず常に実行されるコードブロックです。主にクリーンアップ作業やリソースの解放に使用されます。

  4. Error オブジェクト: JavaScript はさまざまな組み込みエラーオブジェクトを提供しており、これらのオブジェクトは特定のエラータイプを示します。たとえば、SyntaxError、TypeError などがあります。これらのエラーオブジェクトには、例外の詳細情報が含まれており、デバッグに役立ちます。


try-catch

tryブロックには例外を発生させる可能性のあるコードが含まれ、catchブロックはその例外を処理できる場所です。

例では、tryブロックは変数xとyを除算する演算を実行し、もし除算で例外が発生した場合はcatchブロックがその例外をキャッチし、エラーメッセージを出力します。これにより、コードの実行が中断されずに例外を処理できます。

try-catch

try {
    // 예시: 예외를 발생시키는 코드
    const result = x / y; // x와 y를 나누는 연산에서 예외 발생 가능
} catch (error) {
    // 예시: 예외를 처리하는 코드
    console.error("오류가 발생했습니다: " + error.message);
}

throw

throw文はユーザーが直接エラーを発生させるために使用されます。これを使用してカスタムエラーを生成し、throwして例外を発生させることができ、その後try-catchを使用してこれらのエラーをキャッチし、処理することができます。

divide 関数は 2 つの数値を引数として受け取り、2 番目の数値が 0 の場合には "0 で割ることはできません。" というカスタムエラーを throw します。その後、このエラーをキャッチし、エラーメッセージを出力するために try-catch ブロックが使用されます。これにより、例外的な状況を検出し、処理することができます。

throw

function divide(a, b) {
    if (b === 0) {
        throw new Error("0으로 나누는 것은 허용되지 않습니다.");
    }
    return a / b;
}

try {
    let result = divide(10, 0);
    console.log(result);
} catch (error) {
    console.log("오류 발생:", error.message);
}

finally

finallyブロックは、try-catchブロックの後に続くオプションのブロックです。finallyブロック内のコードは、例外が発生したかどうかに関係なく、常に実行されます。

主にクリーンアップ作業やリソースの解放など、終了処理を行うために使用されます(たとえば、データベース接続などの作業で役立ちます)。

finally

function divide(a, b) {
    try {
        if (b === 0) {
            throw new Error("0으로 나누는 것은 허용되지 않습니다.");
        }
        return a / b;
    } catch (error) {
        console.log("오류 발생:", error.message);
    } finally {
        console.log("마무리 작업을 수행합니다.");
    }
}

console.log(divide(10, 2)); // 정상적인 경우
console.log(divide(10, 0)); // 예외 발생한 경우

Error Object

JavaScriptは、さまざまなタイプのエラーを表す組み込みエラーオブジェクトを提供しています。これらのオブジェクトはエラーに関するさまざまな情報を提供し、主な組み込みエラーオブジェクトにはError、TypeError、SyntaxError、ReferenceError、RangeError、EvalError、URIErrorなどがあります。これらのエラーオブジェクトは、例外処理やデバッグに役立ちます。

  • Name
    TypeError
    Type
    Description

    予期しないデータ型を使用したときに発生するエラー

  • Name
    SyntaxError
    Type
    Description

    コードに構文エラーがある場合に発生するエラー。無効なコードを記述した場合に発生

  • Name
    ReferenceError
    Type
    Description

    無効な参照がある場合に発生。宣言されていない変数や存在しないオブジェクトにアクセスした場合に発生

  • Name
    RangeError
    Type
    Description

    数値が許容範囲を超える場合に発生。たとえば、配列の長さに関連するエラー

  • Name
    EvalError
    Type
    Description

    eval()関数の実行中にエラーが発生した場合に発生するエラー

  • Name
    URIError
    Type
    Description

    不正なURI操作が行われた場合に発生するエラー