Não reconhecendo retorno de inteiro

2 respostas
A

Pessoal, boa noite.
Estava tentando fazer um exercício para testar sobrecarga de métodos com tratamento de exceção.
Na verdade misturei classe externa/interna, com sobrecarga e tratamento de exceção.
Não sei o que houve que o meu método sobrecarregado public int soma(int num, int num2) throws Exception, no Eclipse exibe a mensagem nesse método que tenta lançar a Exceção: This method must return a result of type int.

Não entendo se como vocês podem ver no método abaixo, dento da cláusula try eu coloco o retorno: return somat.
Segue o código:

package testeException;



public class TestandoException {
	public class Super{
		public int soma(int num){
			int soma = num + 2;
			return soma;
		}
	}
	public class Sub extends Super{
		public int soma(int num, int num2) throws Exception{
			try{
			int somat = num + num2;
			return somat;
			}
			catch (Exception e){
				e.printStackTrace();
			}
			
		}
	}
	
	public static void main(String []args) throws Exception{
		
		TestandoException.Super ts = new TestandoException().new Super();
		System.out.println("Soma de super: " + ts.soma(2));
		TestandoException.Sub ts2 = new TestandoException().new Sub();
		System.out.println("Soma de super: " + ts2.soma(2, 4));
		
		
	}
}

Alguém pode me ajudar?

2 Respostas

A

você colocou o retorno dentro do try{} , se você colocar fora do try fica ok compila. O java pensa no try como algo que poderá ocorrer qq coisa e não retornar nada indo direto para o catch ou ainda terminando o programa caso o catch não apanhe a exceção.

K

Para o compilador um try é algo que não é certeza que vai acontecer.
Ou seja ele não garante o return do seu segundo método, coloque o return fora!

Criado 28 de março de 2013
Ultima resposta 31 de mar. de 2013
Respostas 2
Participantes 3