me escribió el siguiente código de prueba, a pesar de que yo estaba bastante seguro de lo que sucedería: lo suficientemente¿Qué sucede con el valor devuelto después de que se lanza la excepción en el bloque finally?
static void Main(string[] args)
{
Console.WriteLine(Test().ToString());
Console.ReadKey(false);
}
static bool Test()
{
try
{
try
{
return true;
}
finally
{
throw new Exception();
}
}
catch (Exception)
{
return false;
}
}
Claro, escribió el programa "falso" a la consola. Mi pregunta es, ¿qué sucede con la verdad que originalmente fue devuelta? ¿Hay alguna forma de obtener este valor, en el bloque catch si es posible, o en el bloque finally original si no es así?
Solo para aclarar, esto es solo para fines educativos. Nunca haría un sistema de excepción tan intrincado en un programa real.
Casi un duplicado: [¿Es legal y es posible acceder al valor de retorno en un bloque finally?] (Http://stackoverflow.com/q/304847/256431) –