Привет, я пытаюсь реализовать решение с этого сайта в моем приложении WPF для глобального обработка исключений.
http://www.codeproject.com/Articles/90866/Unhandled-Exception-Handler-For-WPF-Applications.aspx
Я использую Caliburn Micro как среду MVVM. Я перемещаю логику дескриптора исключения в метод OnUnhandledException в классе bootstraper.
Вот мой код из класса bootstraper:
public class MefBootStrapper : Bootstrapper
{
//...
private IMessageBox _msgBox = new MessageBoxes.MessageBoxes();
public bool DoHandle { get; set; }
protected override void OnUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
if (DoHandle)
{
_msgBox.ShowException(e.Exception);
e.Handled = true;
}
else
{
_msgBox.ShowException(e.Exception);
e.Handled = false;
}
}
//...
}
Я привязываю некоторый метод из модели представления к кнопке и генерирую новое исключение. Примерно так:
public void LogOn()
{
throw new ArgumentException("Bad argument");
}
Но результат сам, я тестирую приложение вне Visual Studio и получаю это исключение.
Исключение было сгенерировано целью вызова.