例外処理(exception handling)

分類
テクノロジ系 システム開発技術
出る試験
基本情報応用情報
重要度
★★★☆☆

処理の途中で起きた異常を、呼出し元へ知らせて受け取らせる仕組み。戻り値で返す形と違い、見落としにくい。

もう少し詳しい説明

例外処理は、処理の途中で起きた異常を、呼出し元へ知らせて受け取らせる仕組みです。

戻り値で返す形との違い

戻り値で返す例外
知らせ方特別な値(−1 など)を返す異常として投げる
呼出し元が無視したらそのまま進んでしまう受け取らなければ上へ伝わり、最後は止まる
正常な処理の見た目判定が混ざって読みにくい正常な流れだけを書ける

見落としにくいところが、例外の持ち味です。 判定を書き忘れると、戻り値の形では誤った値のまま先へ進みます。

流れ

段階すること
1異常が起きた場所で、例外を作って投げる
2呼出し元が受け取る(捕まえる)
3記録する、利用者に知らせる、別の方法を試す
4受け取る相手がいなければ、さらに上へ伝わる

例外が持つ情報

持つもの中身
メッセージ文字列直接的な原因を表す文
ソースファイル名どのファイルで起きたか
行番号何行目で起きたか
呼出し履歴どの処理からどの処理が呼ばれて、そこに至ったか

呼出し履歴が、原因をたどる手がかりになります。 どの経路を通って異常に至ったかが分かります。

出す先で内容を分ける

出す先見る人出す内容
画面利用者概要と、次に行うべき操作
ログ開発担当者詳細情報と呼出し履歴

詳細を画面に出すと、内部の作りが外から見えます。 表の名前、ファイルの置き場所、使っているソフトの版などが手がかりになります。

ログに出すときにも、出してはいけないものがあります。

出さないもの理由
認証の情報ログを見る人の範囲が広い
個人情報本来その情報に触れない人まで見てしまう

この問題では、開発担当者が運用中のデータを直接見られない決まりになっています。 ログに顧客情報を出すと、その決まりがログ経由で崩れます。

ログ種別

種別使いどころ
DEBUG開発中の細かい記録
INFO正常な動きの記録
WARNすぐ困らないが、気に留めるべきこと
ERROR処理が続けられなかったこと

監視は、ログ種別の文字列を見て異常を見つけます。 ERRORが出たら知らせる、という形です。

想定しているか、していないか

分類中身扱い
想定済みの異常入力の誤り、業務の決まりに反する操作その場で利用者に直してもらう
想定外の異常プログラムの欠陥、接続の切断処理を中断し、記録して知らせる

同じ「エラー」でも、扱いが分かれます。 想定済みなら業務を続けられ、想定外なら続けられません。

試験ではこう出る

科目A(旧・午前)では、例外処理の仕組みが問われます。呼出し元へ知らせる、受け取らなければ上へ伝わる、という部分です。

午後や応用情報(情報システム開発)では、出す先による内容の違いが問われます。画面には概要と次の操作、ログには詳細、という切り分けです。

「出力内容を一部変更する」という設問が出ます。画面から詳細情報を外す、という答え方になります。

関連する用語

オブジェクト指向
例外もオブジェクトとして扱う。クラスとインスタンスの考え方が土台になる
ホワイトボックステストとブラックボックステスト
異常の場合も試す必要がある。テストの観点になる
インシデント管理
運用で起きた異常への対応。ログがその材料になる
SQLインジェクション
詳しい誤りの内容を画面に出すと、手がかりを与える

ミニクイズ

利用者の画面に表示するエラーメッセージの内容として、最も適切なものはどれか。

正解は 4番:何が起きたかの概要と、利用者が次に行うべき操作の案内

利用者が必要とするのは、何が起きたかと、次に何をすればよいかです。ソースファイル名や行番号、呼出し履歴、問合せの内容は、内部の作りを外に見せることになり、攻撃の手がかりを与えます。これらは画面ではなくログに出し、開発担当者が見る形にします。出す先によって内容を分ける、という考え方になります。

間違えた用語の復習リストを見る →

この分野をまとめて解く → システム開発とユーザーインタフェースのミニテスト(全40問)

最終更新:2026-11-09