English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Per verificare l'overflow di Integer, dobbiamo controllare il risultato della moltiplicazione di Integer.MAX_VALUE con un intero, qui, Integer.MAX_VALUE è il valore massimo degli interi in Java.
Vediamo un esempio in cui si moltiplicano due interi e se il risultato è maggiore di Integer.MAX_VALUE, viene lanciata un'eccezione.
Di seguito è riportato un esempio di come verificare l'overflow di Integer.
public class Demo { public static void main(String[] args) { int val1 = 9898; int val2 = 6784; System.out.println("Valore1: "+val1); System.out.println("Valore2: "+val2); long mul = (long)val1 * (long)val2; if (mul > Integer.MAX_VALUE) { throw new ArithmeticException("Overflow!"); } //Mostra la moltiplicazione System.out.println("Risultato della moltiplicazione: "+(int)mul); } }
Risultato di output
Valore1: 9898 Valore2: 6784 Risultato della moltiplicazione: 67148032
Nell'esempio sopra, abbiamo utilizzato due interi seguenti.
int val1 = 9898; int val2 = 6784;
Ora, lo proiettiamo e lo moltiplichiamo.
long mul = (long)val1 + (long)val2;
Se il risultato è maggiore del valore massimo, viene lanciata un'eccezione.
Se (mul > Integer.MAX_VALUE) { throw new ArithmeticException("Overflow!"); }