que he visto dicen que es mala forma de usar la captura sin argumentos, sobre todo si esa captura no hace nada:¿Por qué try {...} finalmente {...} es bueno; prueba {...} catch {} ¿malo?
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5/0;
}
catch // No args, so it will catch any exception
{}
reader.Close();
Sin embargo, esto se considera buena forma:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5/0;
}
finally // Will execute despite any exception
{
reader.Close();
}
Por lo que puedo decir, la única diferencia entre poner código de limpieza en un bloque finally y poner código de limpieza después de los bloques try..catch es si tiene instrucciones return en su bloque try (en ese caso, el código de limpieza finalmente se ejecutará, pero el código después de la try..catch no lo hará).
De lo contrario, ¿qué tiene de especial por fin?
Antes de intentar atrapar un tigre que no puede manejar, debe documentar sus deseos finales. –
[Excepciones] (http://stackoverflow.com/documentation/c%23/40/exception-handling#t=201609200630056810948) El tema de la documentación puede proporcionar algunas buenas ideas. También eche un vistazo al ejemplo [Finally Block] (http://stackoverflow.com/documentation/c%23/40/exception-handling/172/finally-block#t=201609200630056810948). – Athafoud