Agora a pergunta clássica: por que você não pegou este código e tentou executar?
 
Elelê..
 
Nada como o método científico. Dúvidas sanadas, desculpem o flood.
 
Bruno H. H.
----- 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.

Responder a