例外
エラーだよ
想定内だよ
実際には いろいろな解釈があるよ
簡単に書くよ
例外(読:レイガイ 英:exception)とは
(想定内の)エラーのこと。
もう少し具体的に書くと
「やべっ、予定と違うんだけど!(まぁ、想定していたけどね)」な状況・状態のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「エラー」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
エラーは「想定外の事態になっちゃったよ~」です。
えらいこっちゃ、ですね。
「想定外」と言いつつ、実際のプログラムでは想定しておかないといけません。
「エラーが発生したら、どうするか?」は、あらかじめ考えて対処を組み込んでおく必要があります。
そのため、エラーは2種類に分けられます。
1.想定内のエラー
2.想定外のエラー
の2つです。
例えば、そうですね。
ピヨ太君が運動会に参加しようとしたとしましょう。
ところがどっこい、雨が降って中止になりました。
運動会をやるはずだったのが、やれていません。
これを実際のプログラムで考えてみましょう。
処理は「運動会をやる」です。
実際には運動会をやれていません。
雨が降った状況は「エラーが発生した」と言えるでしょう。
ただし、雨が降ることは想定できました。
ですから「雨が降ったら、どうするか?」を事前に決めてあります。
つまり、雨が降ったのは「想定内のエラー」です。
さて、今回は雨が降った結果、運動会が中止になりました。
これは「想定内のエラー」です。
それでは、雨ではなく槍が降ったら、どうでしょうか?
槍が降っても運動会は中止になるでしょう。
それは良いとして、槍が降るなんて状況は想像できませんよね?
誰も「槍が降ったら、どうするか?」なんて考えていないでしょう。
槍が降った状況は「想定外のエラー」と言えます。
このように、一口に「エラー」と言っても、実際には
1.想定内のエラー
2.想定外のエラー
の2種類あるのです。
以上を踏まえて、本題に入ります。
ズバリ!
想定外の事態になっちゃったよ~
が「例外」です。
つまり「エラー」と同じような意味ですね。
あるいは
想定外の事態になっちゃったよ~。実際には想定していたけどね
が例外です。
つまり「想定内のエラー」と同じような意味ですね。
実は「例外」という用語には微妙にニュアンスの違う複数の解釈があります。
私自身は「想定内のエラーが例外じゃないかな?」と思っています。
それぞれの用語を英語で書くと
エラー:error
例外:exception
です。
「(日本語に翻訳したときの解釈違いではなく)英語でも違うんだから、何か違うんじゃないの?」です。
また、プログラミング言語のJavaではエラーと例外は明確に区別されます。
Javaではエラー処理を「例外処理」と表現します。
そして、Javaにおいては例外処理を以下のように書きます。
try {
//主処理
} catch (Exception e) {
//エラー(例外)が発生したときにやる処理
}
「catch()」の部分で捕捉するのは「例外(exception)」です。
「try{}」の中に書かれた処理でおかしいことが起きると「こんな感じのおかしいことが起きました!」な連絡が出されます。
その連絡を「catch()」の部分で捕捉して、何らかの処理をやります。
これがJavaにおける例外処理です。
ですが、ちょっと考えてみてください。
「こんな感じのおかしいことが起きました!」な連絡を出す余裕がないエラーだって起こり得ますよね。
連絡する暇もなくプログラムが終了しちゃうようなエラーです。
そんなエラーだってエラーはエラーです。
ということで、私はJavaにおけるエラーと例外の違いを
エラー:想定外の予定外
例外:想定内の予定外
のように解釈しています。
ただし、エラーにしろ例外にしろ「やべっ、予定と違うんだけど!」です。
そのため、エラーと例外を同じものだとする解釈も間違いとは言えません。
さらに今挙げた2つの解釈とは別の解釈をする人もいます。
ややこしいですね。
「エラー」と「例外」は使い分けがあいまいな用語のひとつです
ごちゃごちゃしたので整理します。
例外の解釈には
1.エラー
2.想定内のエラー
3.それ以外の解釈
の3つがあります。
どの解釈が正しいのかは、おそらく誰も知りません。
「細かいことは、いらないよ!サクっと説明しろ!サクっと!」な人は
「エラー」と同じような意味の用語
と思ってください。
日常生活を送る分には、それで困ることは少ないはずです。
あと、余談ですが、私は基本的に「例外」という表現を使いません。
使うのはJavaの例外処理の話題のときくらいです。
エラーと例外の区別って微妙なんですよね。
よって私は「例外っぽいかな?」なやつも、すべて「エラー」と表現しています。
一言でまとめるよ
まぁ「例外」って単語が出てきたら「(想定内の)エラーのことなんだな~」と お考えください。






