Я пытаюсь обработать все необработанные исключения в моем приложении WPF.
Я создал фиктивный проект и изменил файл App.xaml.cs, чтобы он выглядел следующим образом
public partial class App : Application
{
public App()
{
this.Dispatcher.UnhandledException += (sender, args) =>
{
Console.WriteLine("Test1");
};
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
{
Console.WriteLine("Test2");
};
Application.Current.DispatcherUnhandledException += (sender, args) =>
{
Console.WriteLine("Test3");
};
AppDomain.CurrentDomain.FirstChanceException += (sender, args) =>
{
Console.WriteLine("Test4");
};
}
}
У меня также есть этот ViewModel и свойство TestProp, которое я связал с TextBox.Text в XAML:
public class TestViewModel
{
private string testProp;
public string TestProp
{
get => testProp;
set
{
testProp = value;
// RAISE EXCEPTION IN PROPERTY SETTER
throw new Exception("Test Exception");
}
}
}
Изменение этого свойства в представлении вызовет исключение, однако ни одно из событий в App.xaml.cs не будет инициировано, кроме FirstChanceException.
The проблема с FirstChanceException, это будет вызвано, даже если я обработаю исключение в коде.
Я просто хочу, чтобы все необработанные исключения обрабатывались глобально, чтобы я мог регистрировать ошибку и отображать диалоговое окно ошибки, не имея обернуть каждый метод получения / установки.
Возможно ли это? Спасибо