为Visual Studio 2010 VsPackage创建全局异常处理程序

时间:2011-06-12 13:47:53

标签: visual-studio-2010 exception-handling vspackage

在Visual Studio的早期版本中,有一个扩展名(更具体地说,一个插件),OnConnect方法的单个入口点。从那里可以执行所有Visual Studio操作,例如添加菜单项和设置全局异常处理程序,以优雅地处理未处理的异常。

在Visual Studio 2010的VsPackage中,工作方式不同 - 应用程序的许多部分(例如IWpfTextView)由MEF组成并在没有明确控制包的情况下加载,从而处理来自那些非常困难的异常

如果没有将所有这些组件明确地包装在自己的try..catch中,我怎样才能有效地为我的VsPackage中的(非关键)异常实现全局处理程序? 同样,目标是使用ReSharper的异常对话框,它可以处理全局异常,而不会导致Visual Studio崩溃。

1 个答案:

答案 0 :(得分:4)

我通过阅读官方VsExtensibility论坛调查了这个主题,根据thisthis主题,没有这样的地方可以挂钩来捕获所有异常。因此,典型的解决方案是在任何地方使用尝试...捕获

我建议使用其中一个AOP框架(如PostSharp)来完成这个属性,以消除大量蹩脚的重复代码,其唯一目的是处理未处理的异常。

相关问题