gpt4 book ai didi

c# - 为什么异常不会在 WPF 对话框关闭事件处理程序之外冒泡?

转载 作者:行者123 更新时间:2023-11-30 13:01:29 25 4
gpt4 key购买 nike

在主文件中:

Window window = new MyDialogWindow();
try
{
window.ShowDialog();
}
catch
{
// This is never called !
}

在 MyDialogWindow 中:

private void MyDialogWindow_Closing( object sender, CancelEventArgs e )
{
throw new Exception();
}

似乎抛入关闭事件处理程序的异常永远不会到达调用者的 catch block 。你知道为什么吗?

编辑:我应该提到我已经检查过在我按下关闭按钮后调用了 MyDialogWindow_Closing。

EDIT2:当监听 AppDomain.CurrentDomain.UnhandledException 时,事件被触发!

最佳答案

我猜你得到的异常不是你抛出的异常,而是另一个通常不会被 .Net 异常处理伞“捕获”的异常。其中一类异常是结构化错误处理异常 (SEH),通常发生在非托管代码出现问题(通常是内存问题或指针问题)时,该代码在执行过程中崩溃,但无法冒泡到 .Net 异常中处理流。

进入您的调试-->异常,并检查所有内容。然后运行你的程序。您几乎肯定会发现真正的异常是什么。

看看this question 不会有什么坏处|以及讨论该主题的内容。

关于c# - 为什么异常不会在 WPF 对话框关闭事件处理程序之外冒泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189851/

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