読み込み中...

JavaScript try catchを完全解説!エラー処理の7つの方法

JavaScriptのtry catchを分かりやすく解説する記事のサムネイル画像 JS
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptのtry catchを使ってエラー処理ができるようになります。

初心者にも分かりやすく、使い方や注意点、対処法、カスタマイズ方法を詳しく解説します。

また、サンプルコードや応用例も豊富に掲載しているので、実際のプログラムにすぐに取り入れられます。

それでは、さっそくJavaScriptのtry catchについて学んでいきましょう!

●JavaScriptのtry catchとは

JavaScriptのtry catchは、プログラムの実行中に発生するエラーを捕捉して、適切な処理を行うための構文です。

tryブロック内でエラーが発生した場合、catchブロックが実行され、エラー処理が行われます。

この構文を使うことで、プログラムが予期せぬエラーでクラッシュするのを防ぎ、ユーザーに適切なフィードバックを提供できます。

●try catchの基本的な使い方

try catch構文は、まずtryブロック内で実行したいコードを記述し、次にcatchブロックでエラーが発生した場合の処理を記述します。

エラーが発生しなければ、catchブロックは実行されません。

この構文を使ってエラーが発生した場合でも、プログラムが適切に処理されるようにします。

○サンプルコード1:基本的なtry catch構文

このコードでは、tryブロック内で変数を宣言し、その変数に値を代入しています。

もしエラーが発生すれば、catchブロックが実行され、エラーメッセージがコンソールに表示されます。

try {
  let x = 5;
  x = x * 2;
  console.log(x);
} catch (error) {
  console.error('エラーが発生しました:', error);
}

●try catchを使ったエラー処理の方法

try catchを使って、さまざまなエラー処理を行うことができます。

○サンプルコード2:エラー時にメッセージを表示

このコードでは、関数内でエラーが発生した場合に、アラートダイアログでエラーメッセージを表示します。

function doSomething() {
  try {
    let x = 5;
    x = x * 2;
    console.log(x);
  } catch (error) {
    alert('エラーが発生しました。もう一度お試しください。');
  }
}

doSomething();

○サンプルコード3:エラー時に関数を呼び出す

このコードでは、エラーが発生した場合に、別の関数を呼び出してエラー処理を行っています。

function handleError() {
  console.error('エラーが発生しました。サポートチームに連絡してください。');
}

function doSomething() {
  try {
    let x = 5;
    x = x * 2;
    console.log(x);
  } catch (error) {
    handleError();
  }
}

doSomething();

○サンプルコード4:エラー時にログを残す

このコードでは、エラーが発生した場合に、エラーメッセージとタイムスタンプを含むログを残します。

function doSomething() {
  try {
    let x = 5;
    x = x * 2;
    console.log(x);
  } catch (error) {
    console.error(`エラーが発生しました: ${error.message} (${Date.now()})`);
  }
}

doSomething();

○サンプルコード5:条件によってエラーをスロー

このコードでは、条件によってエラーを発生させる方法を紹介しています。

この例では、変数が10より大きい場合にエラーを発生させています。

function checkNumber(number) {
  if (number > 10) {
    throw new Error('数字が10より大きいです。');
  } else {
    console.log('数字は10以下です。');
  }
}

try {
  checkNumber(15);
} catch (error) {
  console.error('エラーが発生しました:', error.message);
}

○サンプルコード6:複数のcatchブロックを使う

このコードでは、複数のcatchブロックを使って、異なるタイプのエラーに対応する方法を紹介しています。

この例では、RangeErrorとReferenceErrorの2種類のエラーに対応しています。

try {
  // エラーを発生させるコードを記述
} catch (error) {
  if (error instanceof RangeError) {
    console.error('範囲外のエラーです:', error.message);
  } else if (error instanceof ReferenceError) {
    console.error('参照エラーです:', error.message);
  } else {
    console.error('その他のエラーです:', error.message);
  }
}

○サンプルコード7:finallyブロックを使う

このコードでは、finallyブロックを使って、エラーの発生に関係なく実行される処理を紹介しています。

この例では、エラーが発生してもしなくても、最後に”処理が終了しました”というメッセージが表示されます。

function doSomething() {
  try {
    let x = 5;
    x = x * 2;
    console.log(x);
  } catch (error) {
    console.error('エラーが発生しました:', error.message);
  } finally {
    console.log('処理が終了しました');
  }
}

doSomething();

●try catchの注意点と対処法

try catch構文を使う際には、次のような注意点や対処法があります。

  1. エラーが発生しなかった場合でも、catchブロック内で実行される処理は無駄になる可能性があります。
    適切なエラーハンドリングを行い、無駄な処理を減らしましょう。
  2. catchブロック内でさらなるエラーが発生する可能性があります。
    その場合、エラー処理が正しく行われない可能性がありますので、注意してください。

●カスタマイズ方法

try catch構文をカスタマイズする方法として、次のようなものがあります。

  1. 独自のエラークラスを作成する

    既存のエラークラスでは対応しきれない状況に対処するため、独自のエラークラスを作成し、それを使って例外をスローすることができます。
class CustomError extends Error {
  constructor(message) {
    super(message);
    this.name = 'CustomError';
  }
}

try {
  throw new CustomError('これはカスタムエラーです');
} catch (error) {
  console.error(error.name + ': ' + error.message);
}

このコードでは、CustomErrorという独自のエラークラスを定義し、それを使って例外をスローしています。

  1. エラー情報を詳細に取得する

    エラーが発生した際に、スタックトレースやエラーの詳細情報を取得することで、デバッグ作業を効率化できます。
try {
  // エラーが発生するコードを記述
} catch (error) {
  console.error('エラーメッセージ:', error.message);
  console.error('スタックトレース:', error.stack);
}

このコードでは、エラーが発生した際に、エラーメッセージとスタックトレースを出力しています。

まとめ

try catch構文は、JavaScriptでエラーハンドリングを行う際に非常に重要な機能です。

この記事では、try catchの基本的な使い方やカスタマイズ方法を紹介しました。

適切なエラーハンドリングを行うことで、コードの堅牢性を高めることができます。

ぜひ参考にして、日々の開発に活かしてください。