例外処理とは→「失敗したら、こうじゃ!」
プログラミング初心者です(*'v') < Java
なぜかめっちゃアレルギーだった「例外処理」なるものが、やっとおぼろげに分かってきて抵抗感も薄れてきたので、同じようなアレルギー患者さんの癒やしになればと思いました~。
↓ こんなの
try {
こうしたいのじゃが
} catch(Exception e) {
失敗したら、こうじゃ!
}
Javaのエラーは二種類あって、普通の会話に例えると
①日本語からして間違ってる →「コンパイルエラー」
②日本語は合ってるけどおかしい(ことがある)→「実行時例外」
「トイレ行ってきます」と言ってトイレ行くプログラムがあるとして、
そもそもおかしい「いってきまトイ」みたいなことを言ってしまうのが①コンパイルエラー で、
ちゃんと言えてるけど、言った状況がおかしくて「いまトイレにいるんだけど、トイレ行ってきますって何?」となってしまうのが②実行時例外
①は直さない限りそもそも実行が出来ないんですが、
②は、なまじ言葉自体は合ってるから実行はされてしまって、そして例外が発生したときに処理が止まる!(困る)
ので、「例外(Exception)」が起きたときにどうするかを、
あらかじめ書いておこう!というのが「例外処理」なようで✨
トイレのたとえだと、人間なら「ここトイレだよ?」と言われても
「いや、ボケただけ」と返せるんですが
プログラムは、書かれてないことは一切出来ないので、
ここトイレだけど?と言われた瞬間、何もできなくなってしまう。
なので、何もできなくなってしまうと困るので、言い訳するなり泣き出すなり、「予定通りにいかなかったときはこうする」と言う処理を、例外処理(catch)のところに書きます。
try {
「トイレ行ってきます」
} catch(Exception ここトイレだよ) {
言い訳する
} catch(Exception さらに追及される) {
泣き出す
}
タイトル「失敗したら、こうじゃ!」にならえば、
「ここトイレだよと言われたら、言い訳して、
言い訳もダメだったら、泣くんじゃ!」となります。
入門向けの例外処理(catch部分)では、「ここトイレだよ?と言われました」とだけ報告させて、穏便にプログラムを終了させる(または続行させる)ことが多いです(*´ωˋ*)
そういう意味では、例外処理は「安全な不時着」!✈️
報告=フライトレコーダー。(車ならドライブレコーダー)
トライ部分が「本当にやりたい処理」で、
キャッチ部分が「保険」(うまくいかなかったとき用)
という感じでしょうか…。
実行時例外がめっちゃ発生しやすい、きわどい処理なんかは、このtry-catchを書かないとそもそも実行してくれないものもあるみたいです☺️
.*・゚◝(*º∀º*)◜.゚・* お粗末さまでしたー!
.*・゚◝(*º∀º*)◜.゚・*.
※catchがいくつも並んでるやつは、例外の種類を上から順番に、いくつも想定してるケースです!「トイレが無い?/→ここがトイレ?/→使用中?/→それ以外?」みたいな。
※「Aなら右へ行く、Bなら左へ行く」みたいな、if文とは違います。
例外処理は、うまくいかなかったとき用の非常設備(エラー対策)!
この記事が気に入ったらサポートをしてみませんか?