¿Por qué la excepción de win32 no es detectada por el mecanismo de manejo de excepciones de c #?
Tengo una aplicación winforms. Las formas de inicio comienzan con Program.cs donde tenemos main () definido. He puesto este código en el bloque try-catch.
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmSplash());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
if (ex.InnerException != null)
{
MessageBox.Show(ex.InnerException.ToString());
}
}
}
Siempre que hay una excepción de win32, este mecanismo falla y se lanza un mensaje de excepción no manejado y la aplicación se bloquea.
Tengo 2 preguntas con respecto a este código:
1) ¿Por qué no se capturan las excepciones de win32?
2) ¿Es una buena práctica capturar excepciones en el nivel más alto?