Seguinte, to tentando usar o esquema de excecao numa funcao de uma classe minha, na teoria blz td claro, entao fui fazer um teste besta p ver se funcionava…nesse exemplo, eu trato uma exececao geral (a Exception) e lanco uma excecao especifica (uma q criei) dentro do catch da excecao geral e dps uso um finally p fechar os recuros ou retornar o valor do retorno…
A aplicacao teste eh bem simples, pega 2 numeros e divide, se o denominador n for zero, n lanca excecao, porem se o denominador for zero, lanca a excecao. O problema eh q qnd executo o codigo abaixo, sem gerar execao ele pega blz, mas qnd gera a excecao ai, o metodo divisao n esta lancando a NumeroException p o metodo “Main” e em consequencia, ele n escreve o “Exception no main!” (mas era p escrever nao?)…porem qnd retiro o finally, ele pega ok e lanca a excecao p “Main”…so q preciso lancar a excecao especifica e usar o finally p liberar recursos na minha aplicacao, alguem me dar uma luz ai como fazer esse danado lancar essa excecao especifica (NumeroException) e executar o finally…
Os codigos…
Classe Main q chama a divisao
package excecao_teste;
public class Main {
public static void main(String[] args) {
try {
int divisao = Funcao.divisao(2, 0);
System.out.println("Divisao = " + divisao);
} catch (NumeroException ex) {
System.out.println("Exception no main!");
}
}
}
Classe Divisao q executa a divisao e lanca excecao caso o denominador seja 0
package excecao_teste;
public class Funcao {
public static int divisao(int num1, int num2) throws NumeroException {
int resultado = -1;
try {
resultado = num1 / num2;
//return resultado;
} catch (Exception e) {
e.printStackTrace();
throw new NumeroException();
}
finally {
System.out.println("executou finally");
return resultado;
}
}
Classe NumeroException, q eh a classe da Excecao Especifica
package excecao_teste;
public class NumeroException extends Exception {
}
Bem eu acho q n fiz nd d anormal, ou fiz?