English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Integerのオーバーフローをチェックするには、減算の結果を使用してInteger.MAX_VALUEをチェックする必要があります。ここで、Integer.MAX_VALUEはJavaの整数の最大値です。
整数を減算し、結果がInteger.MAX_VALUEを超えた場合に例外が発生する例を見てみましょう。
以下は、Integerのオーバーフローをチェックする方法を示す例です。
public class Demo { public static void main(String[] args) { int val1 = 9898999; int val2 = 8784556; System.out.println("値1: "+val1); System.out.println("値2: "+val2); long sub = (long)val1 - (long)val2; if (sub > Integer.MAX_VALUE) { throw new ArithmeticException("Overflow!"); } //減法結果を表示する System.out.println("減法結果: "+(int)sub); } }
出力結果
値1: 9898999 値2: 8784556 減法結果: 1114443
上の例では、以下の2つの整数を用いました-
int val1 = 9898999; int val2 = 8784556;
今、それを減法に変換する。
long sub = (long)val1 - (long)val2;
結果が最大値を超えた場合、例外を発生させる。
If (sub > Integer.MAX_VALUE) { throw new ArithmeticException("Overflow!"); }