У меня есть winforms application.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) Является ли хорошей практикой ловить исключения на самом высоком уровне.