为Visual Studio 2010的VsPackage制作全局异常处理程序

14

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

在Visual Studio 2010的VsPackage中,情况有所不同-应用程序的许多部分(如IWpfTextView)是由MEF组合并加载的,而没有包的显式控制,这使得处理来自这些部分的任何异常变得非常困难。

在不显式包装所有这些组件的try..catch的情况下,我如何有效地实现我的VsPackage中的(非关键性)异常全局处理程序? 再次强调目标是像ReSharper的异常对话框一样,在不崩溃Visual Studio的情况下处理全局异常。


哦,伙计。我刚给以利沙写了一封信,几乎问了同样的问题。天啊。 - Restuta
1个回答

4
我通过阅读官方VsExtensibility论坛,并根据此主题的内容调查了这个主题,没有一个地方可以捕获所有异常。因此,典型的解决方案将是在所有地方使用try...catches。

我建议使用AOP框架之一,如PostSharp,通过属性来实现这一点,以消除处理未处理异常的大量垃圾重复代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接