Winforms 防止",;[YourProgramName]已停止工作“;关于未处理异常的对话框

Winforms 防止",;[YourProgramName]已停止工作“;关于未处理异常的对话框,winforms,exception,dialog,Winforms,Exception,Dialog,我有一个WinForm应用程序,它依赖于一个外部库,有时会导致运行线程上下文之外的异常。现在看来,这是完全正常的行为(当然,例外情况除外),我们连接了AppDomain.CurrentDomain.UnhandledException以简单地重新启动程序 唯一的问题是,[您的程序]已停止工作,如下所示: 有没有办法阻止此对话框出现,无论是在AppDomain未处理的异常处理程序中还是在配置设置中,因为最终用户不会读取它,它只会在单击之前保留资源。通过阻止未处理的异常事件处理程序退出来避免WER

我有一个WinForm应用程序,它依赖于一个外部库,有时会导致运行线程上下文之外的异常。现在看来,这是完全正常的行为(当然,例外情况除外),我们连接了AppDomain.CurrentDomain.UnhandledException以简单地重新启动程序

唯一的问题是,[您的程序]已停止工作,如下所示:


有没有办法阻止此对话框出现,无论是在AppDomain未处理的异常处理程序中还是在配置设置中,因为最终用户不会读取它,它只会在单击之前保留资源。

通过阻止未处理的异常事件处理程序退出来避免WER对话框。调用Environment.Exit()终止应用程序。

AFAIK,该对话框仅在应用程序以异常方式终止(例如未处理的异常)时显示。您确定您的未处理异常处理程序在所有情况下都正常工作吗?是和否。您是正确的,该对话框是由于未处理的异常引起的,是的,异常处理程序没有处理它。但是,异常代码位于WCF托管服务中,因此,托管WCF服务的WinForm应用程序最终无法控制异常,除非在AppDomain.CurrentDomain.UnhandledException中注意到它。理想的解决方案是找到并修复所有未处理的异常,但现在我很高兴只记录发生的异常,重新启动应用程序(以及WCF服务),而不是让应用程序终止并挂起。谢谢,当我需要终止应用程序时,它会起作用。但是如果需要重新启动它,我应该怎么做?我正在使用Application.Restart(),但它显示此对话框([您的程序]已停止工作)。。。