C#の算術演算では桁数のオーバーフローが起こっても例外は発生しませんが、
これを発生させる方法です。
サンプル
例1)桁数オーバーフローが発生しても例外が発生しない例
//intの最大値を設定して表示する
int i = int.MaxValue;
Console.WriteLine(i);
//加算する(オーバーフローさせる)
i++;
//値を表示する
Console.WriteLine(i);
結果
2147483647
-2147483648
桁数オーバーフロー時に例外を発生させるには、該当箇所を checked句で囲います。
例2)桁数オーバーフロー発生時に例外を発生させる例
checked
{
//intの最大値を設定して表示する
int i = int.MaxValue;
Console.WriteLine(i);
//加算する(オーバーフローさせる)
i++;
//値を表示する
Console.WriteLine(i);
}
結果
2147483647
例外がスローされました: 'System.OverflowException'
備考
- checked句を使用すると、オーバーフロー時にSystem.OverflowExceptionが発生します。
- 発生した例外はtry~catch句で捕捉できます。
- 浮動小数点型(float、double)の場合は、checked句内でオーバーフローしても例外は発生しません。