Escribí un programa simple para probar una teoría de que el bloque "finalmente" siempre se ejecutará sin importar qué. Pero, lo que estoy viendo de la siguiente PGM es que el control nunca parece entrar en el bloque final final.¿Por qué el "fin" externo no se ejecuta cuando se lanza el "catch" interno?
Intenté hacer F5 y también Ctrl-F5 en Visual Studio y es el mismo resultado.
¿Alguien puede explicar por qué estoy viendo este comportamiento?
de salida en la ventana de la consola es:
captura interior
interior finalmente
captura exterior
excepcion no controlada:
..y entonces la aplicación se bloquea
public class Program
{
static void Main()
{
try
{
try
{
string s = null;
s.ToString();
}
catch
{
Console.WriteLine("inner catch");
throw;
}
finally
{
Console.WriteLine("inner finally");
}
return;
}
catch
{
Console.WriteLine("outer catch");
throw;
}
finally
{
Console.WriteLine("outer finally");
}
}
}
oh ok. al hacer clic en cancelar, aparece la afirmación "exterior finally: bueno saber esto. Gracias – user330612