tyr-catch構文の後ろに続けてfinally節を書きます。例外が発生しても、しなくてもfinally
ブロックは実行されます。
// finally01.cs using System; class finally01 { public static void Main() { try { Console.Write("何か数字を入力してください---"); string str = Console.ReadLine(); int x = Int32.Parse(str); int y = x / 2; Console.WriteLine("今入力した数字を2で割ると{0}です", y); } catch (Exception e) { Console.WriteLine("例外が発生しました"); Console.WriteLine(e.Message); } finally { Console.WriteLine("finallyです"); } } }見てわかるように、「数字を入力してください」数字以外の文字を入力すると例外が発生します。
言われたとおり、数字を入力するとその半分の値を出力します。
どちらの場合も「finallyです」という文字列が出力されます。
実行結果は、次のようになります。
数字を入力しなかったために、例外が発生しています。
例外が発生しても、「finallyです」という文字列は表示されます。
今度は、例外は発生していません。
「finallyです」という文字列は表示されます。
さて、このプログラムの場合最後の
Console.WriteLine("finallyです");は、わざわざfinallyブロックに書かなくても結果は同じになります。
ただ、プログラムの見通しをよくするという意味合いですね。
Update 12/Oct/2006 By Y.Kumei