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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage