「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

例外

pointこの用語のポイント

pointエラーだよ

point想定内だよ

point実際には いろいろな解釈があるよ

スポンサーリンク

簡単に書くよ

例外(読:レイガイ 英:exception)とは

(想定内の)エラーのこと。
もう少し具体的に書くと

「やべっ、予定と違うんだけど!(まぁ、想定していたけどね)」な状況・状態のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「エラー」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

エラーは「想定外の事態になっちゃったよ~」です。
えらいこっちゃ、ですね。

例外

「想定外」と言いつつ、実際のプログラムでは想定しておかないといけません。
「エラーが発生したら、どうするか?」は、あらかじめ考えて対処を組み込んでおく必要があります。

そのため、エラーは2種類に分けられます。

1.想定内のエラー
2.想定外のエラー


の2つです。

例えば、そうですね。

ピヨ太君が運動会に参加しようとしたとしましょう。

例外2

ところがどっこい、雨が降って中止になりました。

例外3

運動会をやるはずだったのが、やれていません。

これを実際のプログラムで考えてみましょう。
処理は「運動会をやる」です。

実際には運動会をやれていません。
雨が降った状況は「エラーが発生した」と言えるでしょう。

ただし、雨が降ることは想定できました。
ですから「雨が降ったら、どうするか?」を事前に決めてあります。

つまり、雨が降ったのは「想定内のエラー」です。

さて、今回は雨が降った結果、運動会が中止になりました。
これは「想定内のエラー」です。

例外4

それでは、雨ではなく槍が降ったら、どうでしょうか?

例外5

槍が降っても運動会は中止になるでしょう。
それは良いとして、槍が降るなんて状況は想像できませんよね?

誰も「槍が降ったら、どうするか?」なんて考えていないでしょう。
槍が降った状況は「想定外のエラー」と言えます。

例外6

このように、一口に「エラー」と言っても、実際には

1.想定内のエラー
2.想定外のエラー


の2種類あるのです。

以上を踏まえて、本題に入ります。

ズバリ!

想定外の事態になっちゃったよ~

が「例外」です。
つまり「エラー」と同じような意味ですね。

例外7

あるいは

想定外の事態になっちゃったよ~。実際には想定していたけどね

が例外です。
つまり「想定内のエラー」と同じような意味ですね。

例外8

実は「例外」という用語には微妙にニュアンスの違う複数の解釈があります。

私自身は「想定内のエラーが例外じゃないかな?」と思っています。

それぞれの用語を英語で書くと

エラー:error
例外:exception


です。
(日本語に翻訳したときの解釈違いではなく)英語でも違うんだから、何か違うんじゃないの?」です。

また、プログラミング言語Javaではエラーと例外は明確に区別されます。
Javaではエラー処理を「例外処理」と表現します。
そして、Javaにおいては例外処理を以下のように書きます。

try {

 //主処理

} catch (Exception e) {

 //エラー(例外)が発生したときにやる処理

}


「catch()」の部分で捕捉するのは「例外(exception)」です。
「try{}」の中に書かれた処理でおかしいことが起きると「こんな感じのおかしいことが起きました!」な連絡が出されます。
その連絡を「catch()」の部分で捕捉して、何らかの処理をやります。
これがJavaにおける例外処理です。

ですが、ちょっと考えてみてください。
「こんな感じのおかしいことが起きました!」な連絡を出す余裕がないエラーだって起こり得ますよね。
連絡する暇もなくプログラムが終了しちゃうようなエラーです。
そんなエラーだってエラーはエラーです。

ということで、私はJavaにおけるエラーと例外の違いを

エラー:想定外の予定外
例外:想定内の予定外


のように解釈しています。

ただし、エラーにしろ例外にしろ「やべっ、予定と違うんだけど!」です。
そのため、エラーと例外を同じものだとする解釈も間違いとは言えません。

さらに今挙げた2つの解釈とは別の解釈をする人もいます。

ややこしいですね。

「エラー」と「例外」は使い分けがあいまいな用語のひとつです

ごちゃごちゃしたので整理します。
例外の解釈には

1.エラー
2.想定内のエラー
3.それ以外の解釈


の3つがあります。
どの解釈が正しいのかは、おそらく誰も知りません。

「細かいことは、いらないよ!サクっと説明しろ!サクっと!」な人は

「エラー」と同じような意味の用語

と思ってください。
日常生活を送る分には、それで困ることは少ないはずです。

あと、余談ですが、私は基本的に「例外」という表現を使いません。
使うのはJavaの例外処理の話題のときくらいです。

エラーと例外の区別って微妙なんですよね。
よって私は「例外っぽいかな?」なやつも、すべて「エラー」と表現しています。


image piyo2

一言でまとめるよ

まぁ「例外」って単語が出てきたら「(想定内の)エラーのことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像079
書籍画像028


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック