gpt4 book ai didi

wpf - 在 WPF 应用程序中使用 winforms 默认异常处理程序

转载 作者:行者123 更新时间:2023-12-02 09:00:29 24 4
gpt4 key购买 nike

对于简单的“仅供内部使用”的应用程序,Winforms 有一个有用的默认异常处理程序,它允许“忽略”,并告诉您异常是什么。

WPF 应用程序似乎没有获得这种良好的异常处理 - 您始终必须退出应用程序。

显然,我可以为 WPF 编写自己的默认异常处理程序,但是是否有一种简单的方法来使用 Winforms 框架中必须已经存在的异常处理程序,但使用 WPF?

最佳答案

我认为这个问题有两个部分:如何连接您自己的异常处理程序以便允许应用程序继续运行,以及是否可以重用 Windows 窗体未处理的异常 UI。

对于第一部分,请参阅Application.DispatcherUnhandledException。如果您订阅此事件,并且您的事件处理程序将 DispatcherUnhandledExceptionEventArgs.Handled 设置为 true,则 WPF 将跳过默认的未处理异常处理 - 即应用程序不会自动关闭。 (当然,您的事件处理程序仍然可以将其关闭。)默认情况下,Handled 未设置为 true,因此您必须显式执行此操作。

有关第二部分,请参阅 System.Windows.Forms.ThreadExceptionDialog。这正式“不适合在您的代码中使用”,并且没有以任何有用的方式进行记录,因此在生产应用程序中依赖它是不明智的。但是,如果您愿意冒险,那么您可以创建此类的实例并 ShowDialog() 它。在 .NET 3.5 中,它返回 DialogResult.Cancel 表示“忽略异常并继续”,返回 DialogResult.Abort 表示“退出”。这些值没有记录,但应被视为实现细节!

关于wpf - 在 WPF 应用程序中使用 winforms 默认异常处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623938/

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