Não reconhecendo retorno de inteiro

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:

[code]
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));
	
	
}

}[/code]

Alguém pode me ajudar?

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.

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!