35 votes

Que se passe-t-il si les blocs catch et finalement Block lancent une exception?

Que se passe-t-il si les blocs catch et finalement Block lancent une exception?

32voto

adrianbanks Points 36858

Lorsque le bloc finally lève une exception, il masquera effectivement l'exception levée du bloc catch et sera celle qui sera finalement levée. Il est donc important de consigner les exceptions lorsqu’elles sont interceptées ou de s’assurer que le bloc finally ne lève pas d’exception, sinon vous pouvez obtenir des exceptions qui sont étouffées et jamais vues.

6voto

NawaMan Points 10266

Lorsque la capture jette une exception, enfin bloc sera exécuté, puis sortir à une exception près. Si le bloc lance enfin une exception, le bloc sortira à une exception près.

4voto

chrisb Points 1297

Adrianbanks a déjà répondu à sa question, mais l'article suivant devrait être intéressant: Résultats exceptionnels intéressants: exclusion des exceptions du bloc Finally

4voto

La dernière exception levée est levée.

-4voto

sunil shetty Points 1

HI Nwaman, je pense que vous répondez est faux, je l’ai testé sous Windows, j’ai trouvé si vous écrivez un programme comme celui-ci

 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");
}
 

et cela ne résultera finalement pas pour excuter,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X