Натолкнулся на проблемку при обработке исключительных ситуаций в Windows Presentation Foundation. Рассмотрим код:
1 using System;
2 using System.Windows;
3
4 class ExceptionDemoForm: Window
5 { 6 [STAThread]
7 public static void Main(string[] args)
8 { 9 Application application = new Application();
10 ExceptionDemoForm form = new ExceptionDemoForm();
11 application.Run(form);
12 }
13
14 public ExceptionDemoForm()
15 { 16 Title = "title of ExceptionDemoForm";
17 Loaded += windowLoaded;
18 }
19
20 private void windowLoaded(object sender, RoutedEventArgs e)
21 { 22 Content = "Before Exception";
23 throw new ApplicationException("Some Exception"); 24 Content = "After Exception" ;
25 }
26 }
В строке 23 генерируется Exception при этом Runtime его "проглатывает", т.е. никоим образом не индицирует что произошло исключение... Очень и очень плохо, ибо прикладной программист, написав свой обработчик события Loaded может очень долго не понимать почему всё вроде бы работает (ведь исключения не показывается и отладчик не останавливается) и при этом не работает (на примере код в строке 24 выполнен не будет).