見出し画像

例外処理とは→「失敗したら、こうじゃ!」

プログラミング初心者です(*'v') < Java

なぜかめっちゃアレルギーだった「例外処理」なるものが、やっとおぼろげに分かってきて抵抗感も薄れてきたので、同じようなアレルギー患者さんの癒やしになればと思いました~。


↓ こんなの

try {

    こうしたいのじゃが

} catch(Exception e) {

    失敗したら、こうじゃ!

}


Javaのエラーは二種類あって、普通の会話に例えると

①日本語からして間違ってる →「コンパイルエラー」

②日本語は合ってるけどおかしい(ことがある)→「実行時例外」


「トイレ行ってきます」と言ってトイレ行くプログラムがあるとして、

そもそもおかしい「いってきまトイ」みたいなことを言ってしまうのが①コンパイルエラー で、

ちゃんと言えてるけど、言った状況がおかしくて「いまトイレにいるんだけど、トイレ行ってきますって何?」となってしまうのが②実行時例外


①は直さない限りそもそも実行が出来ないんですが、

②は、なまじ言葉自体は合ってるから実行はされてしまって、そして例外が発生したときに処理が止まる!(困る)

ので、「例外(Exception)」が起きたときにどうするかを、
あらかじめ書いておこう!というのが「例外処理」なようで✨


トイレのたとえだと、人間なら「ここトイレだよ?」と言われても

「いや、ボケただけ」と返せるんですが

プログラムは、書かれてないことは一切出来ないので、

ここトイレだけど?と言われた瞬間、何もできなくなってしまう。

なので、何もできなくなってしまうと困るので、言い訳するなり泣き出すなり、「予定通りにいかなかったときはこうする」と言う処理を、例外処理(catch)のところに書きます。

try {
    「トイレ行ってきます」
} catch(Exception ここトイレだよ) {
    言い訳する
} catch(Exception さらに追及される) {
    泣き出す
}


タイトル「失敗したら、こうじゃ!」にならえば、

「ここトイレだよと言われたら、言い訳して、
言い訳もダメだったら、泣くんじゃ!」となります。


入門向けの例外処理(catch部分)では、「ここトイレだよ?と言われました」とだけ報告させて、穏便にプログラムを終了させる(または続行させる)ことが多いです(*´ωˋ*)

そういう意味では、例外処理は「安全な不時着」!✈️ 
報告=フライトレコーダー。(車ならドライブレコーダー)

トライ部分が「本当にやりたい処理」で、
キャッチ部分が「保険」(うまくいかなかったとき用)
という感じでしょうか…。

実行時例外がめっちゃ発生しやすい、きわどい処理なんかは、このtry-catchを書かないとそもそも実行してくれないものもあるみたいです☺️ 

 .*・゚◝(*º∀º*)◜.゚・* お粗末さまでしたー!

.*・゚◝(*º∀º*)◜.゚・*.


※catchがいくつも並んでるやつは、例外の種類を上から順番に、いくつも想定してるケースです!「トイレが無い?/→ここがトイレ?/→使用中?/→それ以外?」みたいな。

※「Aなら右へ行く、Bなら左へ行く」みたいな、if文とは違います。
 例外処理は、うまくいかなかったとき用の非常設備(エラー対策)!


はてブ (ㅅ´ ˘ `)💓

この記事が気に入ったらサポートをしてみませんか?