Почему исключение win32 не перехватывается механизмом обработки исключений c #

У меня есть приложение winforms.Winforms начинаются с Program.cs, где мы определили main (). Я поместил этот код в блок 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());
            }
        }
    }

Всякий раз, когда возникает исключение win32, этот механизм завершается сбоем, выдается необработанное сообщение об исключении и происходит сбой приложения.
У меня есть 2 вопроса относительно этого кода:

1) Почему win32 исключения не ловятся.

2) Это хорошая практика, чтобы ловить исключения на самом высоком уровне.

Ответы на вопрос(6)

Ваш ответ на вопрос