Exception(エクセプション)とError(エラー)の違いとは?システム処理の基本をやさしく解説
今日の仕事で、Exception(エクセプション) についての話題が上がりました。
そのときに聞いたことはある言葉でも、改めて「何が違うのか」を説明しようとすると少しあいまいだなと感じました。
今回は私自身の整理も兼ねて、ExceptionとErrorの違いをできるだけシンプルにまとめます。
まず結論
一言でいうと、次のイメージです。
- Error(エラー)
問題が起きた状態を広く表す言葉 - Exception(エクセプション)
その中でも、プログラムが途中で拾って対応しやすい問題
身近な例で考えると?
たとえば、駅の自動改札をイメージしてみます。
ICカードをタッチしたのに、改札を通れなかったとします。
この「予定通り通れなかった」という出来事を広く見るとエラーとなります。
エラーの内容としては、以下のような場合があります。
- 残高が足りない
- カードをうまくタッチできていない
- 入場記録と出場記録が合わない
- 定期券の範囲外だった
これらはどれも、「改札を通る処理がうまく終わらなかった」という意味でエラーです。
その中でも改札機が、
- 「残高不足です」
- 「もう一度タッチしてください」
- 「係員にお知らせください」
のように、何が起きたかを判断して案内できるものがあります。
これが、Exception(エクセプション)のイメージです。

日常生活でよく見るのは、Exception(エクセプション)なんだね!
一方で、
- 改札機の電源が落ちている
- 機械そのものが故障している
- 通信トラブルでカード情報を読めない
このように機械そのものがうまく動かず、その場で簡単に対応しにくい大きな問題は、より深刻なError(エラー)のイメージに近いです。
システム処理ではどう違うのか
システムでは、たとえば次のようなものはExceptionとしてイメージしやすいです。
- 入力が空だった
- 数字を入れる欄に文字を入れた
- 存在しないファイルを開こうとした
こうした問題は、プログラム側で気づければ
- 「入力してください」
- 「数字で入力してください」
- 「ファイルが見つかりません」
のように、利用者に分かる形で案内できます。
一方で、アプリ側で素直に対処しにくい、もっと深刻な異常はErrorとして扱われることがあります。
そのため、現場ではざっくり
「案内や分岐で対処しやすいのがException」
「もっと大きく深刻な異常まで含むのがError」
と捉えると理解しやすいです。
なぜこの違いを知っておくとよいのか
この違いを知っておくと、エラーメッセージを見たときに、少し落ち着いて考えやすくなります。
たとえばException寄りの問題なら、
- 入力内容を直せばよいのか
- ファイルの場所を見直せばよいのか
- システム側で案内を増やした方がよいのか
と考えやすくなります。
一方で、Error寄りの話なら、
利用者の操作というより、システム側の調査や修正が必要な可能性が高い
と切り分けやすくなります。

Exception(エクセプション)の方が、
問題の原因がわかりやすくて嬉しいってことだね!
まとめ
最後に違いをシンプルにまとめます。
- Error(エラー) は、問題が起きた状態を広く表す言葉
- Exception(エクセプション) は、その中でもプログラムが途中で気づいて対応しやすい問題
- ざっくり言えば、Exceptionは“扱いやすいエラー” と考えると分かりやすい

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

