Mam aplikację WinForm. Informacje zaczynają się od pliku Program.cs, gdzie mamy zdefiniowany main(). Umieściłem ten kod w bloku try-catch.Dlaczego wyjątek win32 nie jest przechwytywany przez mechanizm obsługi wyjątków C#
[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());
}
}
}
Gdy istnieje wyjątek win32, mechanizm ten nie powiedzie się i komunikat nieobsługiwany wyjątek i awarie aplikacji.
Mam 2 pytania dotyczące tego kodu:
1) Dlaczego wyjątki win32 nie zostały złapane.
2) Czy dobrą praktyką jest wychwytywanie wyjątków na najwyższym poziomie.
Wow, nigdy tak naprawdę nie myślałem o tym, dobre pytanie i dobre odpowiedzi :) – leppie
Proszę również skomentować drugie pytanie. – Rohit
Może mógłbyś zrobić to drugie pytanie SO ;-) – Mac