ブルーノのC#プログラミング & unity勉強日記

プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。その他趣味の雑記もしていきたいです

例外について(4/3)

f:id:covory10101101276:20171222135010j:image

みなさんこんにちは🌚

前回勢い余って内容が多くなってしまい、3回で終われなかったブルーノです。今回は本当に最後のまとめとして例外の他の例をまとめます!

 

独自の例外

 (1/3)回目で出たExceptionクラスやApplicationExceptionクラスからオリジナルの例外を派生させることができます(もちろん他の例外クラスからも派生させられますが、シールされているものもあるので注意してください)。

f:id:covory10101101276:20171222145218p:imagef:id:covory10101101276:20171222144835p:imagef:id:covory10101101276:20171222145225p:image

3~12行目のBruno089派生クラスをDivideByZeroExceptionから派生させ、その内容をnewキーワードやoverrideキーワードで上書きして新しい例外クラスにしています。

次のBruno090クラスでは、その例外で書き換えた部分をキャッチブロックで全て表示するようにしています。ちなみにURLはディシディアファイナルファンタジーNTのβ版のサイトです。是非みなさんやりましょう😀😀

 

オーバーフローについて

 プログラム実行時に変数のデータ型の範囲を超える値が代入されてしまうとオーバーフロー(桁あふれ)が起きてしまい、計算途中でこれが起こることで結果が大幅に狂ってしまいます。この時、checkedキーワードを使うことでオーバーフロー時にOverflowException例外を発生させることができます。checkedキーワードはtry-catch文のようにオーバーフローが起きそうな文を { } で囲むことで使うことができます。

f:id:covory10101101276:20171222232909p:plain

f:id:covory10101101276:20171222232917p:plain

checked文の内側ではオーバーフローを起こすように簡単な式が組まれていて、これによりchecked文はキャッチ節でキャッチされます。ちなみにchecked文の逆でunchecked文というものもあり、これはオーバーフローを無視します。

今回はここまでにしておきます。

 

ついに例外が終了しました。次回からは演算子オーバーロードについてやっていきたいと思います。

今日学校でVBAのゲームを作るよう課題を出されました。C#でもゲームのためにこうして勉強してるのにVBAでそんな高度なことをいきなりやらされるとは.....😓