読者です 読者をやめる 読者になる 読者になる

例外処理

C# Sample

C#の例外処理も、基本的にはJavaC++と同じような感じ・・・。

tryブロックで、

System.Console.ReadLineで標準入力を読み込み、int.Parseで整数値にして、xに代入する・・・。
(System.Console.ReadLineや、intをクラスみたいに扱える理由とかは、後々で・・・。)

さて、この式において、xが0の時はどうなるだろうか・・・。
0で除算は当然のことながら例外となるので、例外処理をしないといけない・・・。

もし、0以外なら、

yが出力されるが、0の場合は、

例外発生なので、こちらのcatchブロックに飛ぶ・・・。
ToStringメソッドでExceptionのeの内容がわかるので、それをSystem.Console.WriteLineで出力・・・。

xに5を入力すると、

x: 5
y = 0
続行するには何かキーを押してください . . .

xが0ではないので、除算が実行される・・・。
本来、0.2なのだが、整数同士の除算なので0となる・・・。

x: 0
e.ToString() = System.DivideByZeroException: 0 で除算しようとしました。
   場所 MainClass.Main() 場所 C:\Project\Cloud\github.com\Sample\cs\Exception\Exception\src\Exception\Exception\MainClass.cs:行 17
続行するには何かキーを押してください . . .

xが0なら、0の除算が行われるので、例外処理catchブロックが実行される・・・。
eに格納されている実際のインスタンスはSystem.DivideByZeroException・・・。
0で除算しようとしたことがわかる・・・。
さらにはプログラム上の起きた場所まで出力される・・・。

Sample/MainClass.cs at master · bg1bgst333/Sample · GitHub