2009年12月5日土曜日

オーバーフロー例外は既定ではスローされないのでcheckedキーワードを使用しオーバーフロー例外を検出しスローする。

using System;

class MainClass
{
    static void Main()
    {
        try
        {
            /* オーバーフローを検出
             * checkedキーワードを使用しないと
             * 既定ではオーバーフロー例外はスローされない*/
            checked
            {
                // intの最大値を代入
                int n = int.MaxValue;
                Console.WriteLine(n);
                // オーバーフローさせる
                n++;
                Console.WriteLine(n);
            }
        }
        // 全ての例外を捕捉
        catch (Exception error)
        {
            /* 例外の原因に関する詳細情報を表示
             * オーバーフローが発生している*/
            Console.WriteLine(error.Message);
        }
        finally
        {
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿