IT

Exception(エクセプション)とError(エラー)の違いとは?システム処理の基本をやさしく解説

masaya4027

今日の仕事で、Exception(エクセプション) についての話題が上がりました。
そのときに聞いたことはある言葉でも、改めて「何が違うのか」を説明しようとすると少しあいまいだなと感じました。

今回は私自身の整理も兼ねて、ExceptionとErrorの違いをできるだけシンプルにまとめます。

まず結論

一言でいうと、次のイメージです。

  • Error(エラー)
    問題が起きた状態を広く表す言葉
  • Exception(エクセプション)
    その中でも、プログラムが途中で拾って対応しやすい問題

身近な例で考えると?

たとえば、駅の自動改札をイメージしてみます。

ICカードをタッチしたのに、改札を通れなかったとします。
この「予定通り通れなかった」という出来事を広く見るとエラーとなります。

エラーの内容としては、以下のような場合があります。

  • 残高が足りない
  • カードをうまくタッチできていない
  • 入場記録と出場記録が合わない
  • 定期券の範囲外だった

これらはどれも、「改札を通る処理がうまく終わらなかった」という意味でエラーです。

その中でも改札機が、

  • 「残高不足です」
  • 「もう一度タッチしてください」
  • 「係員にお知らせください」

のように、何が起きたかを判断して案内できるものがあります。
これが、Exception(エクセプション)のイメージです。

エナガちゃん
エナガちゃん

日常生活でよく見るのは、Exception(エクセプション)なんだね!

一方で、

  • 改札機の電源が落ちている
  • 機械そのものが故障している
  • 通信トラブルでカード情報を読めない

このように機械そのものがうまく動かず、その場で簡単に対応しにくい大きな問題は、より深刻なError(エラー)のイメージに近いです。

システム処理ではどう違うのか

システムでは、たとえば次のようなものはExceptionとしてイメージしやすいです。

  • 入力が空だった
  • 数字を入れる欄に文字を入れた
  • 存在しないファイルを開こうとした

こうした問題は、プログラム側で気づければ

  • 「入力してください」
  • 「数字で入力してください」
  • 「ファイルが見つかりません」

のように、利用者に分かる形で案内できます。

一方で、アプリ側で素直に対処しにくい、もっと深刻な異常はErrorとして扱われることがあります。
そのため、現場ではざっくり

「案内や分岐で対処しやすいのがException」
「もっと大きく深刻な異常まで含むのがError」

と捉えると理解しやすいです。

なぜこの違いを知っておくとよいのか

この違いを知っておくと、エラーメッセージを見たときに、少し落ち着いて考えやすくなります。

たとえばException寄りの問題なら、

  • 入力内容を直せばよいのか
  • ファイルの場所を見直せばよいのか
  • システム側で案内を増やした方がよいのか

と考えやすくなります。

一方で、Error寄りの話なら、
利用者の操作というより、システム側の調査や修正が必要な可能性が高い
と切り分けやすくなります。

エナガちゃん
エナガちゃん

Exception(エクセプション)の方が、
問題の原因がわかりやすくて嬉しいってことだね!

まとめ

最後に違いをシンプルにまとめます。

  • Error(エラー) は、問題が起きた状態を広く表す言葉
  • Exception(エクセプション) は、その中でもプログラムが途中で気づいて対応しやすい問題
  • ざっくり言えば、Exceptionは“扱いやすいエラー” と考えると分かりやすい
筆者
筆者

仕事の中で何気なく出てきた言葉でも、改めて整理してみること理解が深まりました。
今回、「エラー全体」と「途中で拾って扱える問題」は少し違うと整理できて、頭の中がすっきりしました。

ABOUT ME
筆者
筆者
思考と学びを記録する会社員エンジニア
本ブログでは週2〜3本を目安に学びや仕事、暮らしの中で得た気づきを記録しています。 IT・思考術・学習・暮らし・ガジェットなど「工夫と発見で暮らしをより豊かにする」のテーマに合わせて無理のないペースで更新しています。
記事URLをコピーしました