J'ai vu des gens dire que c'est mauvais d'utiliser des captures sans arguments, surtout si le catch n'est pas faire n'importe quoi:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
catch // No args, so it will catch any exception
{}
reader.Close();
Cependant, cela est considéré comme une bonne forme:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
finally // Will execute despite any exception
{
reader.Close();
}
Aussi loin que je peux dire, la seule différence entre mettre de nettoyage de code dans un bloc finally et de mettre le code de nettoyage après le try..catch est si vous avez des retour des déclarations dans votre bloc try (dans ce cas, le code de nettoyage à enfin s'exécuter, mais le code après le try..catch ne sera pas).
Sinon, quel est si spécial à propos de finalement?