C#.NET VSTO Excel加载项全局错误处理程序选项

C#.NET VSTO Excel加载项全局错误处理程序选项,c#,.net,excel,vsto,C#,.net,Excel,Vsto,我使用VSTO和C#.NET创建了一个Excel加载项。我感兴趣的是为未处理的异常创建一个处理程序。根据一些研究和其他帖子,我可以注册一些活动,它们似乎起到了作用 比如说: private void ThisAddIn_Startup(object sender, EventArgs e) { AppDomain.CurrentDomain.UnhandledException += this.CurrentDomain_UnhandledException;

我使用VSTO和C#.NET创建了一个Excel加载项。我感兴趣的是为未处理的异常创建一个处理程序。根据一些研究和其他帖子,我可以注册一些活动,它们似乎起到了作用

比如说:

    private void ThisAddIn_Startup(object sender, EventArgs e)
    {
        AppDomain.CurrentDomain.UnhandledException += this.CurrentDomain_UnhandledException;
    }

    private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        var errorDialog = new ErrorDialog("Something went wrong", e.ExceptionObject as Exception);
        errorDialog.ShowDialog();            
    }
太好了。但是,一旦错误对话框显示并退出,即上面的代码返回/完成,触发异常的代码将在其停止的位置恢复,从而重新触发异常。它变成了一个无限循环

在WPF中,我们只需将它标记为handled,
(e.handled=true;)
,这样就可以处理它了。但是,我在WinForms中没有看到类似的选项

Excel加载项VSTO/Win表单异常处理程序有哪些选项

我唯一能想到的就是捕捉第一个事件并要求用户重新启动应用程序


一定有更好的办法。如何才能真正处理该异常?

请查看try-catch代码构造函数。很难找到每一个可能的故障点。我宁愿安全,也不愿后悔,也不愿让应用程序意外崩溃。似乎有各种各样的解决方案: