2009年12月5日土曜日

キャッチした例外をそのまま再スローする場合はクラスの指定を省略できる。

using System;

class MainClass
{
    // catchブロックで例外をスローするメソッド
    static void ExceptionMethod()
    {
        try
        {
            int a = 1;
            int b = 0;
            // ゼロ除算の例外発生
            a /= b;
        }
        catch (Exception)
        {
            Console.WriteLine("最初の捕捉");
            /*  クラス(thow new DividedByZeroException)を
             * 省略して再スロー*/
            throw;
        }
    }
    static void Main()
    {
        try
        {
            ExceptionMethod();
        }
        // 全ての例外を捕捉
        catch (Exception error)
        {
            Console.WriteLine("全ての例外を捕捉");
            // 例外に関する詳細情報を表示
            Console.WriteLine(error.Message);
        }
        finally
        {
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿