gpt4 book ai didi

c# - 如何使用 Application_UnhandledException 捕获一般异常?

转载 作者:可可西里 更新时间:2023-11-01 10:36:03 24 4
gpt4 key购买 nike

我问的问题可能很简单,但我确定我在这里遗漏了一些东西 :D

我的 App.xaml.cs 文件中有以下方法:

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
MessageBox.Show("An error occurred!", ":(", MessageBoxButton.OK);
e.Handled = true;
App.Current.Terminate;
}

并且在 App() 方法中添加了 eventHandler:

public App()
{
UnhandledException += Application_UnhandledException;

//InitializeComponent() etc...
}

现在,我在 MainPage.xaml.cs 文件中的一个方法中添加了几行生成 IndexOutOfRange 异常,例如:

int[] stuff = new int[3];
for (int i = 0; i < 4; i++)
{
stuff[i] = 0;
}

我不明白 Application_UnhandledException 方法是如何工作的,因为当我尝试运行它时,我在 Visual Studio 调试器中得到了 IndexOutOfRange 异常,但随后应用程序崩溃并且我没有得到那个消息框,所以Application_UnhandledException 中的代码根本不运行。这是为什么?

有没有办法添加一个事件处理程序,无论我遇到什么异常都会触发?我的意思是,使用 IndexOutOfRande、使用 KeyNotFound 等等...

谢谢! :)

最佳答案

您的消息框不会显示,因为它会在之后立即关闭应用程序。

如果你想停止这种行为,你需要这行代码:

e.Handled = true;

但是,如上所述,继续执行应用程序可能会导致更多问题。所以我只会将它用于收集崩溃信息的场景,可能会向用户道歉,然后无论如何使用 App.Current.Terminate();

退出应用程序

关于c# - 如何使用 Application_UnhandledException 捕获一般异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25980922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com