🕌

JavaScript 例外処理

2023/08/06に公開

はじめに

今日も基礎の部分を固めて行きます!

例外処理とは

例外処理は、コードの実行中に起こる予期せぬ問題やエラーを捉えて、プログラムを適切に処理するための仕組みです。JavaScriptでは、try、catch、throw、finallyの4つのキーワードを使用して行います。

1. tryとcatch

コードがエラーを引き起こす可能性がある場合、そのコードはtryブロック内に配置する必要があります。もしtryブロック内のコードがエラーを引き起こすと、直ちにcatchブロックが実行されます。

javascript
try {
  console.log("Start of the try block");
  nonExistentFunction();  // エラーが発生する
  console.log("End of the try block");  // この行はスキップされる
} catch (error) {
  console.error("Error occurred:", error.message);
}
Rubyだと、、
try
begin
  # code that might raise an exception
end
catch
rescue => error
  # handle the error
end

2. throw

throwを使用すると、カスタムエラーを生成して強制的にエラーを発生させることができます。

javascript
let age = 16;

if (age < 18) {
  throw new Error("You are too young!");
}
Rubyだと、、
throw
raise "You are too young!"

3. finally

finallyブロックは、エラーの有無に関わらずtryおよびcatchブロックの後に常に実行されます。リソースのクリーンアップやその他の後処理に役立ちます。

javascript
try {
  console.log("Start of the try block");
} catch (error) {
  console.error("Error occurred:", error.message);
} finally {
  console.log("This will run no matter what.");
}
Rubyだと、、
finally
ensure
  # code that runs no matter what
end

まとめ

  • try
    このブロック内のコードは監視され、実行中にエラーが発生すると、すぐにcatchブロックに制御が移ります。

  • catch
    このブロックはtryブロック内のコードでエラーが発生したときに実行されます。
    エラーオブジェクトを受け取るための変数を指定できます。

  • throw
    カスタムエラーや例外を発生させることができます。

  • finally
    このブロック内のコードは、tryやcatchの後に常に実行されます。
    エラーの有無に関わらず実行したいコードをここに置きます。

try {
  // このブロック内でエラーが発生するかもしれません
  let result = someFunctionThatMightThrowAnError();
  console.log(result);
} catch (error) {
  // エラーが発生した場合の処理
  console.error("An error occurred:", error.message);
} finally {
  // 常に最後に実行する処理
  console.log("Try-catch block finished.");
}

// カスタムエラーのスロー
if (someConditionNotMet) {
  throw new Error("Custom error message");
}

なぜ例外処理が必要か?

ユーザーがフォームに無効な入力を行った場合や、
APIからのデータ取得中に何らかのエラーが発生した場合など、
多くのシナリオでエラーが発生する可能性があります。

エラーを適切に処理することで、プログラムはクラッシュせずに安定して動作し、
ユーザーに有用なエラーメッセージを提供することができます!

具体的な例で考えると、APIの呼び出しに失敗した場合、
catchブロックを使用してユーザーにエラーメッセージを表示することができます。
これにより、ユーザーは何が問題かを知ることができ、対処する手段を取ることができます。

例外処理を学ぶことで、プログラムの耐障害性を向上させ、
予期せぬエラーに柔軟に対応することができるようになります💡

参考🌱

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/try...catch

Discussion