Duvida Excecao + finally  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
hlds
Virtual Machine Man

Membro desde: 29/03/2006 22:18:39
Mensagens: 602
Offline

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


Classe Divisao q executa a divisao e lanca excecao caso o denominador seja 0


Classe NumeroException, q eh a classe da Excecao Especifica


Bem eu acho q n fiz nd d anormal, ou fiz?

This message was edited 1 time. Last update was at 06/05/2008 19:09:38

hlds
Virtual Machine Man

Membro desde: 29/03/2006 22:18:39
Mensagens: 602
Offline

arrumei, coloquei o return fora do finally, dps do bloco finally e pegou blz...
psandrelli
JavaChild
[Avatar]

Membro desde: 17/05/2007 15:39:35
Mensagens: 128
Localização: Belo Horizonte-MG
Offline

O finally é executado de qualquer jeito, ocorrendo excessão ou não.
Se vc tiver uma sessão aberta, por exemplo, depois do processamento dentro do try-catch, vc pode colocar o fechamento dessa sessão dentro de finally.
O fechamento de uma conexão com banco pode se colocada dentro do finally também.
Dentro do finally vai ser executado qualquer comando.

boolean euEstiverVivo = true;
do {
System.out.println("Ozzy no Brasil...eu fui! (SP-área vip)");
} while (euEstiverVivo);

Pablo Sandrelli
hlds
Virtual Machine Man

Membro desde: 29/03/2006 22:18:39
Mensagens: 602
Offline

eh eu notei isso, o problema eh q n eh legal por return dentro do finally, pois ele quebra o resto, nesse caso o lancamento da excecao...entao como regra fica: finally executa sempre, e n se poe return dentro do finally, a n ser q saiba o q esteja fazendo...flw..vlw..
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team