Tengo un bloqueo mental hoy, necesito una mano que verifique que mi lógica no está marcada con fubar.desechables, usando & Try/Catch Blocks
Tradicionalmente Haría/S de archivos similar a esto:
FileStream fs = null; // So it's visible in the finally block
try
{
fs = File.Open("Foo.txt", FileMode.Open);
/// Do Stuff
}
catch(IOException)
{
/// Handle Stuff
}
finally
{
if (fs != null)
fs.Close();
}
Sin embargo, esto no es muy elegante.
Idealmente me gustaría usar el bloque using
para eliminar el filestream cuando termine, sin embargo, no estoy seguro de la sinergia entre el uso y el try/catch.
Así es como me gustaría poner en práctica lo anterior:
try
{
using(FileStream fs = File.Open("Foo.txt", FileMode.Open))
{
/// Do Stuff
}
}
catch(Exception)
{
/// Handle Stuff
}
Sin embargo, me preocupa que una salida prematura (a través excepción lanzada) desde dentro del bloque utilizando no puede permitir que el bloque usando a completar la ejecución y limpiar su objeto. ¿Estoy paranoico, o esto funcionará realmente de la manera en que lo intento?