2010年1月24日日曜日

int型の最大値を定義してその変数にインクリメントを使用し1を加えてOverflowさせ、既定ではOverflowExceptionはthrowされないこと、checkedキーワードを使用するとOverflowExceptionがthrowされることを確認してみる。

using System;


class MainClass
{
    static void Main()
    {
        try
        {
            int n = int.MaxValue, m = n;


            /* 規定ではオーバーフロー例外はthrow
             * されないことを確認
             * 出力値:int.MinValue */
            Console.WriteLine(++n);


            /* checkedキーワードを使用して
             * オーバーフロー例外をthrow */
            checked
            {
                // オーバーフローさせる
                m++;
            }
        }
        catch (Exception error)
        {
            // 例外の原因の詳細情報を表示
            Console.WriteLine(error.Message);
        }
        finally
        {
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿