C#基本

[C#] 標準例外 System.OverflowException

2023年5月11日

標準例外「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で囲う必要があります。

関連記事

-C#基本
-