Ajuda Tratamento de Exceção!

1 resposta
S

duvidas

1 Resposta

C

Olá shadowcat,

Se você tiver declarado essa referência dentro do bloco try, ela não ficará mais disponível quando uma exceção for disparada. Já que você declarou dentro desse bloco, ela só existe lá dentro. Quando uma exceção é disparada, a execução do código vai pro bloco catch (se tiver), e, como é outro bloco, sua referência nem existe mais.

Não necessariamente. Se você tratar a exceção, o programa não vai terminar (porque a exceção foi tratada). Porém, se uma exceção for lançada e não for capturada, a thread que tava executando ela será finalizada. E se não existir nenhuma outra thread rodando, aí sim, seu programa será finalizado (porque não sobrou “ninguém” vivo). Você pode observar isso criando um programa no modo texto e disparando uma exceção e depois fazendo a mesma coisa em um programa Swing; no modo texto só vai existir uma thread, que é a principal. A exceção finaliza essa thread, e, como ela é a única, o programa é finalizado. Na versão com Swing, como existem inúmeras threads rodando (pelo fato de você estar usando Swing), a sua exceção é lançada, não é capturada, a thread que ela tava sendo executada é finalizada, mas o programa não (porque existem as threads de Swing).

Entendeu? :slight_smile:

Até mais,

Criado 18 de abril de 2006
Ultima resposta 18 de abr. de 2006
Respostas 1
Participantes 2