Я использую следующий код для отображения необработанных исключений в приложении WPF:
public MyApplication() {
this.DispatcherUnhandledException += (o, e) => {
var exceptionMessage = new ExceptionWindow();
exceptionMessage.ExceptionMessage.Text = e.Exception.Message;
exceptionMessage.ExceptionCallStack.Text = e.Exception.StackTrace;
exceptionMessage.ExceptionInnerException.Text = e.Exception.InnerException.Message;
exceptionMessage.WindowStartupLocation = WindowStartupLocation.CenterScreen;
exceptionMessage.WindowStyle = WindowStyle.ToolWindow;
exceptionMessage.ShowDialog();
e.Handled = true;
Shell.Close();
};
}
Оказывается, у меня есть исключение во время создания приложения, поэтому конструктор приложения никогда не выполняется.
Простой способ воспроизвести его (за другим исключением) - добавить дополнительный «<» перед каким-либо тегом в файле конфигурации вашего приложения и запустить его. </p>
Бесполезное сообщение об ошибке, подобное тому, которое появляется перед вызовом конструктора приложения.
альтернативный текст http://srtsolutions.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mikewoelmer/ExceptionWPF1_5F00_1C1F39AA.jpg
Кто-нибудь знает, как отлавливать подобные исключения?
Примечание: я использую Caliburn , и мое приложение расширяет приложение CaliburnApplication.