標準例外「System.OverflowException」についてです。
定義
例外
System.OverflowException
原因・意味
- 算術演算でオーバーフローが発生した
対処法
- 算術演算前にオーバーフローしないかどうか値の範囲チェックを行う
- 大きなサイズを扱える型に変更する(int → longなど)
- checkedブロックで囲わない
発生例
例)算術演算でオーバーフローを発生させる
checked
{
//intの最大値を設定する
int i = int.MaxValue;
//加算する(オーバーフローさせる)
i++;
}
7行目で以下例外が発生します。
System.OverflowException: 'Arithmetic operation resulted in an overflow.'
備考
- C#ではデフォルト状態ではオーバーフローが発生しても例外は発生しません。
明示的に例外を発生させたい場合はcheckedで囲う必要があります。