Tratar overflow

Boa noite,
Gostaria que me ajudassem no seguinte problema: Preciso de causar uma exceção do tipo ArithmeticException dizendo que um overflow ocorreu ao somar dois ints quaisquer:
Comecei a fazer o programa, só falta inserir a Exception:
}
}[/code]
Muito obrigado.

Acho que deva ser isso:

      Scanner entrada = new Scanner(System.in);  

      try {
           System.out.println("Digite os inteitos a serem somados: ");  
           int m = entrada.nextInt(), n = entrada.nextInt();  
           int soma = m + n;  
            
           System.out.println(" O resultado e : " + soma); 
      }
      catch (ArithmaticException arithmatic) { // aqui é capturado a exceção, você pode tratar ou lançar o erro
               System.err.println("Error in the sum of the numbers");
      }

Inseri a Exception, mas quando tento somar dois valores ints, o overflow nunca ocorre, mesmo quando somo 999999999 + 999999999.
Isso era previsto? Na verdade o programa deve ler repetidamente dois numeros inteiros diferentes de zero, chamar
o metodo soma para somar os dois inteiros lidos e imprimir, dependendo dos valores
dos argumentos, o resultado da soma, caso o valor da soma possa ser armazenado
em um valor de tipo int. Caso contrario uma mensagem apropriada para o usuario
(indicando que o valor da soma nao pode ser armazenado em um valor de tipo int).
A leitura deve terminar quando um dos valores lidos for igual a zero. Seria isso mesmo?
Obrigado

Bem a classe ArithmeticException ela somente captura operação incorretas e não overflow de ints,
para esse tipo de exception use a class NumberFormatException ou InputMismatchException elas capturam
esse tipo de exception.

o que fiz foi fazer um cast da soma para um Long, mas deve haver jeito melhor…

[code]public static void main(String[] args){

	int a = 2147483647;
	int b = 2147233647;

	if ((((long) a) + ((long) b)) > Integer.MAX_VALUE){
		throw new ArithmeticException("Erro");
	}
}[/code]

ok?

int a = Integer.MAX_VALUE;
int b = Integer.MAX_VALUE;
if(a + b < 0) {
//se o resutlado da soma for menor que zero, significa que a soma dos dois é maior que o valor máximo do tipo primitivo int
System.err.println("Valor da soma maior que um int");
}

Olha vou postar um exemplo, onde é pedido ao usuário que ele digite dois números, caso esses dois números inteiros
sejam maior do que a classe Integer suporta é feito novamente a pergunta ao usuário para que ele digite novamente os
dois números, enquanto os dois ou um número não for válido é repetido a pergunta.

public static void main(String[] args) {

         boolean status = true;

         do {
               try {
                     String number1 = JOptionPane.showInputDialog("Type the first number: ");
                     String number2 = JOptionPane.showInputDialog("Type the second number: ");
                     int sum = Integer.parseInt(number1) + Integer.parseInt(number2);

                     JOptionPane.showMessageDialog(null, "Type sum of the two numbers is: " + sum);
                     status = false; // o programa somente é terminado quando chega até essa linha
               }
               catch (NumberFormatException numberFormat) {} // somente para capturar o erro
         } while (status);
}