Pergunta

O que acontece se se a captura e finalmente blocos lançam exceção?

Foi útil?

Solução

Quando o finally Block lança uma exceção, ele ocultará efetivamente a exceção jogada do catch Block e será o único a ser jogado. Portanto, é importante registrar exceções quando capturado, ou garantir que o bloco finalmente não faça uma exceção, caso contrário, você pode ser expulso exceções que são sufocadas e nunca vistas.

Outras dicas

Quando Catch joga uma exceção, finalmente o bloco será executado e depois saia com uma exceção. Se o bloco finalmente lançar uma exceção, o bloco sairá com uma exceção.

A última exceção lançada é lançada.

Já foi respondido bem pelos Adrianbanks, mas a postagem a seguir deve ser interessante:Resultados da exceção interessante: jogando exceções do bloco finalmente

Oi Nwaman, acho que você responde errada, eu testei no Windows Appliaction, eu descobri se você escrever um programa como o abaixo

try
{
    string s = "hu";
    int i = int.Parse(s);
}
catch (Exception ex)
{
    string s = "hu";
    int i = int.Parse(s);
    throw new Exception();
}
finally
{
    MessageBox.Show("hi");
}

E isso não resultará finalmente para escapar,

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top