----- Original Message -----
Sent: Friday, April 04, 2003 1:40
PM
Subject: try{}, catch{} e finally{}
Oi lista,
Estou com umas dúvidas sobre o fluxo de processos
no tratamento de exeções. Bom, sei que um comando que gera uma exceção deve
ser colocado dentro de um bloco try e que logo abaixo deste
deve haver um bloco catch para pegar e tratar (ou suspender)
a exceção em questão. Caso haja a necessidade de que um comando seja
executado mesmo tendo ocorrido uma exceção nos comandos anteriores, ele deve
ser colocado em um terceiro bloco finally. Tudo certo até aí,
né?
A questão é: caso ocorra uma exceção dentro
do bloco try e esta seja tratada em um catch, os comandos logo abaixo destes
dois últimos blocos serão executados mesmo que não estejam em um finally? E se
o catch em questão suspender a exceção?
Exemplo:
int numero = 0;
try
{
numero = 10 /
0; // Gera exceção
}
catch (Exception e)
{
numero = -1; //
Tratando...
}
System.out.println("Fim do programa. Numero = "
+ numero) // SEREI EXECUTADO?
ou
int numero = 0;
try
{
numero = 10 /
0; // Gera exceção
}
catch (Exception e)
{
throw e; // Suspendendo
System.out.println("Fim do programa. Numero = "
+ numero) // SEREI EXECUTADO?
Obrigado pela atenção
Bruno H. H.