| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 19:06:37
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 19:30:29
|
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...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 20:00:31
|
psandrelli
JavaChild
![[Avatar]](/images/avatar/2f93b699c738691d0b53d82ed1e25817.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 20:44:09
|
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..
|
|
|
 |
|
|
|
|