2010年1月5日火曜日

checkedキーワード、uncheckedキーワードを使用して、try-catch-finallyでオーバーフロー例外をthorwしたりしなかったりしてみる。

using System;


class MainClass
{
    static void Main()
    {
        try
        {
            // 既定ではオーバーフローはthrowされない
            int a = int.MaxValue, b = a, c = a;
            Console.WriteLine(a++);
            Console.WriteLine(a);
            // 明示的にオーバーフローを許可
            unchecked
            {
                Console.WriteLine(b++);
                Console.WriteLine(b);
                // オーバーフローを検出
                checked
                {
                    Console.WriteLine(c++);
                    Console.WriteLine(c);
                }
            }
        }
        catch (Exception error)
        {
            // 例外の原因の詳細情報を表示
            Console.WriteLine(error.Message);
        }
        finally
        {
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿