Então me deparei com um código esta manhã que se parecia com isso:
try
{
x = SomeThingDangerous();
return x;
}
catch (Exception ex)
{
throw new DangerousException(ex);
}
finally
{
CleanUpDangerousStuff();
}
Agora, esse código compila bem e funciona como deveria, mas simplesmente não parece correto retornar de dentro de um bloco try, especialmente se houver um associado finalmente.
Meu principal problema é o que acontece se o finalmente lança uma exceção por si próprio? Você tem uma variável retornada, mas também uma exceção para lidar ... então estou interessado em saber o que os outros pensam sobre retornar de dentro de um bloco try?
x
fora dotry
bloco. Você pode manter sua declaração próxima ao seu uso.