本サイトは広告により収益を得ています

エラー処理の基礎(例外処理)

エラー処理の基礎(例外処理)

2025年10月08日
フリー検定
広告

目次

現在: 5 / 10

バックエンドエンジニアに関する検定はこちら

面倒な会員登録も不要!すぐに受験!

無料で受験する

バックエンドシステムは、外部からの入力ミス、データベースの接続失敗、ファイルが見つからないなど、予期せぬ問題に常に直面します。プログラムが予期せぬ状況に遭遇した際に停止しないよう、適切に問題を検出・対応する仕組みがエラー処理です。特に、致命的な状況を扱うための仕組みを例外処理(Exception Handling)と呼びます。


1. エラーと例外の基本概念

  • エラー(Error) / 説明: プログラムの実行が不可能になる致命的な問題です。メモリ不足など、プログラムでは対応が難しいシステムレベルの問題を指すことが多いです。

  • 例外(Exception) / 説明: 実行中に発生する予期せぬ事態で、プログラムで捕捉し、処理できる問題です。ファイルが見つからない、ゼロ除算などがこれにあたります。

  • 例外処理の目的 / 説明: 例外が発生した場合に、プログラムをクラッシュ(強制終了)させる代わりに、代替の処理を実行したり、エラーメッセージをユーザーに分かりやすく伝えたりするために行います。


2. 例外処理の基本構文

例外処理は、主に以下の3つのブロックを使用して実装されます。

  • try ブロック / 構造: try { 実行したい処理 } / 説明: 例外が発生する可能性があるコードをこのブロック内に記述します。

  • catch ブロック / 構造: catch (例外オブジェクト) { 例外が発生した場合の処理 } / 説明: try ブロック内で例外が発生した場合に、その例外を**捕捉(キャッチ)**し、回復やロギングなどの処理を行います。

  • finally ブロック / 構造: finally { 最後に必ず実行する処理 } / 説明: trycatch の処理の成功・失敗にかかわらず、必ず実行したい処理(データベース接続の切断、ファイルのクローズなど)を記述します。


3. 例外の発生と伝播

  • 例外の発生(Throwing) / 構造: throw new Exception("エラーメッセージ"); / 説明: 開発者が意図的に「これは例外的な状況である」と判断し、新しい例外オブジェクトを生成して処理を中断させます。

  • 例外の伝播(Propagation) / 説明: try-catch で捕捉されなかった例外は、その関数を呼び出した元の関数へと順に渡されていきます。これをスタックを遡ると表現します。

  • 未捕捉の例外 / 説明: 例外がプログラムのどの層でも捕捉されず、最も外側の層に到達した場合、プログラムは強制的に停止(クラッシュ)します。バックエンドでは通常、エラーログを出力して停止します。


4. 適切なエラー処理のプラクティス

  • 例外処理の使い分け / 説明: 想定外の動作や致命的な状況には例外処理を用い、入力チェックの失敗など、通常のフローで起こり得る問題は**戻り値(例: nullfalse)**で処理します。

  • エラーログの記録 / 説明: catch ブロック内では、単にエラーメッセージを表示するだけでなく、発生した例外の詳細(スタックトレース、発生日時)をログファイルに記録することが重要です。

  • 機密情報の非表示 / 説明: ユーザーやクライアントに返すエラーメッセージには、データベースの接続情報やサーバーの内部パスなど、機密性の高い情報を含めてはいけません。一般的なエラー(例: "サーバーエラーが発生しました")に置き換えるべきです。


⭐ 演習課題

以下のロジックを、あなたの使用するプログラミング言語で実装してみましょう。

  1. 引数として数値を受け取る divide_numbers という関数を作成してください。

  2. この関数内で、引数をゼロで割る処理(ゼロ除算)を意図的に実行してください。

  3. try ブロックでこの関数を呼び出し、ゼロ除算が発生した場合に catch ブロックが実行されることを確認してください。

  4. catch ブロック内で「エラーが発生しました:ゼロで割ることはできません。」というメッセージを出力してください。

  5. finally ブロックを作成し、try の成功・失敗に関わらず「処理を終了します。」と出力されることを確認してください。

バックエンドエンジニアに関する検定はこちら

面倒な会員登録も不要!すぐに受験!

無料で受験する
広告

検定一覧はこちらから

様々なジャンルの検定から選んで、あなたの知識を試してみましょう。

検定一覧を見る

関連記事

広告