0Pricing
JavaScript Academy · レッスン

try/catch/finally、throw、カスタムエラー

try/catch/finallyを使い、シンプルなエラーをthrowし、メッセージを分かりやすくする小さなカスタムErrorを定義します。

「try/catch/finally、throw、カスタムエラー」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン1/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全2レッスンが含まれています。

エラーハンドリングの概要

目標:エラーを安全に捕捉し、プログラムを安定した状態に保ちます。

  • try/catchの基本
  • 明確なメッセージを付けたthrow
  • 後処理のためのfinally
  • 小さなカスタムError
try/catch/finally、throw、カスタムエラー — イラスト1

try/catchの基本

リスクのある処理をtryで囲みます。catchでは、短く役立つメッセージを表示します。

// try/catch around risky code
try {
  const data = JSON.parse("{\"name\":\"Ayla\"}");
  console.log("Parsed:", data.name);
} catch (e) {
  // e.message is short and useful on mobile
  console.log("Failed to parse:", e.message);
}
try/catch/finally、throw、カスタムエラー — イラスト2

throwの基本

throw new Error("message")を使うと、処理を停止して何が問題だったかを説明できます。

// Throw when inputs are invalid
function doubleNumber(n) {
  if (typeof n !== "number") {
    throw new Error("Number required");
  }
  return n * 2;
}

try {
  console.log(doubleNumber(4));
  console.log(doubleNumber("4")); // will throw
} catch (e) {
  console.log("Error:", e.message);
}
try/catch/finally、throw、カスタムエラー — イラスト3

後処理のためのfinally

finallyはtryが成功した場合でも失敗した場合でも実行されます。リソースを閉じる処理などに便利です。

// finally runs after try/catch — great for cleanup
let opened = false;

try {
  opened = true;
  console.log("Opened:", opened);
  // Force an error to see finally still run
  JSON.parse("{ bad }");
} catch (e) {
  console.log("Caught:", e.message);
} finally {
  opened = false;
  console.log("Closed:", opened);
}
try/catch/finally、throw、カスタムエラー — イラスト4

カスタムError(概要)

入力の問題に対応する小さなInputErrorを作成します。instanceofを使うと、InputErrorを個別に処理できます。

// Make a small custom error
class InputError extends Error {
  constructor(message) {
    super(message);
    this.name = "InputError";
  }
}

function positive(n) {
  if (typeof n !== "number") {
    throw new InputError("Number required");
  }
  if (n <= 0) {
    throw new InputError("Must be positive");
  }
  return n;
}

try {
  console.log("OK:", positive(3));
  console.log("Fail:", positive(0));
} catch (e) {
  if (e instanceof InputError) {
    console.log("Input problem:", e.message);
  } else {
    // Unknown error: rethrow or log differently
    console.log("Unexpected:", e.message);
  }
}
try/catch/finally、throw、カスタムエラー — イラスト5

ヒントとチェックリスト

ヒント:

  • 入力は早い段階で検証し、短いメッセージをthrowします。
  • 後処理にはfinallyを使います(フラグやタイマーを閉じる処理など)。
  • エラーを握りつぶさず、簡潔にログへ記録するか再throwします。
try/catch/finally、throw、カスタムエラー — イラスト6

finallyのクイズ

簡単な確認:finallyの動作です。

try/catch/finally、throw、カスタムエラー — イラスト7

振り返り

振り返り:リスクのあるコードをtry/catchで囲み、短く役立つエラーをthrowし、後処理にはfinallyを使い、より明確に処理できる小さなカスタムエラーを定義します。

try/catch/finally、throw、カスタムエラー — イラスト8

よくある質問

「try/catch/finally、throw、カスタムエラー」レッスンは無料ですか?

はい。「try/catch/finally、throw、カスタムエラー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全2レッスンが含まれています。

「try/catch/finally、throw、カスタムエラー」で何を学びますか?

try/catch/finallyを使い、シンプルなエラーをthrowし、メッセージを分かりやすくする小さなカスタムErrorを定義します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/2です。

「try/catch/finally、throw、カスタムエラー」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. try/catch/finally、throw、カスタムエラー
  2. 防御的プログラミングと入力チェック
← JavaScript Academyに戻る