Warum werden Win32-Ausnahmen nicht vom Mechanismus zur Behandlung von C # -Ausnahmen abgefangen?
Ich habe eine Winforms-Anwendung. Winforms beginnen mit Program.cs, wo wir main () definiert haben. Ich habe diesen Code in Try-Catch-Block gesetzt.
[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());
}
}
}
Immer wenn es eine win32-Ausnahme gibt, schlägt dieser Mechanismus fehl und eine nicht behandelte Ausnahmemeldung wird ausgegeben und die Anwendung stürzt ab.
Ich habe 2 Fragen zu diesem Code:
1) Warum Win32-Ausnahmen nicht abgefangen werden.
2) Ist es eine gute Praxis, Ausnahmen auf höchster Ebene abzufangen?