unity勉強日記プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。最近プログラミング勉強したい欲が高まっているのに学校が忙しくてできないブルーノです😹冬休みに向けて頑張ってスキマ時間を見つけてやっていきます!!というわけで前回の例外処理の様々な他の例をまとめていきます。throw文あるtry-catchブロックが含まれているメソッドの中で別のtry-catchブロックが含まれているメソッドを呼び出したい時、内側の例外を外側に投げることができます。これを文字のままスロー(throw)と言います。投げるにはオブジェクト化しなければなりません。実感が湧きづらいので例のスクショをあげますまず3~19行目の行では配列の境界を越えたり0で割ろうとしたりわざと例外を発生させるように作られたCalcメソッドを設けています。ここで配列を超えると12行目のIndexOutOfRangeException例外を捕まえるキャッチブロックに捕まります。するとそのメッセージを表示した後にDivideByZeroException例外をオブジェクト化し(14行目)、外側にスローするようになっています(16行目)。この3~19行目のメソッドを呼び出すのが次の21~34行目のBruno087クラスです。このメソッドは先ほどの一連を呼び出すだけのtryブロックで、キャッチブロックにはDivideByZeroExceptionをキャッチするようになっています。先ほどスローするよう組まれたDivideByZeroExceptionはここでキャッチされ、またその旨のメッセージを表示します。最後にこのクラスをメインメソッドから実行しています。自分で例外を作成し、外側に投げているわけですね。いうことはこのプログラムの3~19行目の中で0の除算を行わなくてもこのようにDivideByZeroExceptionは投げられ、キャッチされるのです。メソッドを別々に組んでいてわかりにくいですね。今度はこれをforループの時のようにネストしていまいましょう。try-catch節のネスト今度は発生させる例外をOutOfRangeExceptionのみにし、DivideByZeroExceptionとOutOfRangeExceptionの両方のキャッチブロックを張りました。最初のDivideByZeroExceptionのキャッチブロックには当然ですが引っかからず、するとそれが外側にあるOutOfRangeExceptionのキャッチブロックにキャッチされます。このようにtry-catch節をネストさせることもできます。同時に例外が複数起こるようCalcメソッド内に設けても最初の例外でキャッチ節に移動してしまうのでそれ以降は実行されないようです。今回はここまでにします。全3回にして分けるつもりが今回ちょっと長くなってしまいました。あと少しだけまとめることが残っているのでちょっと次回も例外についてまとめます。ヶ月)プログラミングド素人、ブルーノの勉強報告、兼好きなゲームの雑談のブログです。(4)はてなブログをはじめよう!covory10101101276さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。