English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Javaプログラムで整数を追加し、オーバーフローをチェック

Integerのオーバーフローをチェックするには、加算の結果を使ってInteger.MAX_VALUEをチェックする必要があります。ここでのInteger.MAX_VALUEはJavaの整数の最大値です。

整数を加えた例を示し、合計がInteger.MAX_VALUEを超えた場合に例外が発生する様子を見てみましょう。

public class Demo {
   public static void main(String[] args) {
      int a = 9897988;
      int b = 8798798;
      System.out.println("値1: "+a);
      System.out.println("値2: "+b);
      long sum = (long)a + (long)b;
      if (sum > Integer.MAX_VALUE) {
         throw new ArithmeticException("整数溢出!");
      }
      //合計を表示
      System.out.println("合計: "+(int)sum);
   }
}

出力結果

値1: 9897988
値2: 8798798
合計: 18696786

上記の例では、以下の二つの整数を使用しました。

int val1 = 9897988;
int val2 = 8798798;

今、投射してそれをlongに加える。

long sum = (long)val1 + (long)val2;

結果が最大値を超えた場合、例外を発生させる。

If (sum > Integer.MAX_VALUE) {
   throw new ArithmeticException("Overflow!");
}