14

以前のバージョンの Visual Studio では、拡張機能 (より具体的にはアドイン) への単一のエントリ ポイントであるOnConnectメソッドがありました。そこから、メニュー項目の追加、グローバル例外ハンドラーの設定など、すべての Visual Studio 操作を実行して、未処理の例外を適切に処理することができました。

Visual Studio 2010 の VsPackage では、動作が異なります。アプリケーションの多くの部分 ( IWpfTextView.

try..catchこのようなすべてのコンポーネントを独自のコンポーネントに明示的にラップせずに、VsPackage で (重要ではない) 例外のグローバル ハンドラーを効率的に実装するにはどうすればよいでしょうか? 繰り返しになりますが、目標は、Visual Studio をクラッシュさせることなくグローバルな例外を処理できる、ReSharper の例外ダイアログのようなものを持つことです。

4

1 に答える 1

4

公式の VsExtensibility フォーラムを読んでこのトピックを調査しましたが、これこのスレッドによると、すべての例外をキャッチするためにフックする場所は 1 つではありません。したがって、典型的な解決策は、どこでもtry... catchを使用することです。

PostSharpのような AOP フレームワークの 1 つを使用して、属性を使用してこれを達成し、未処理の例外を処理することのみを目的とする大量のくだらない重複コードを排除することをお勧めします。

于 2011-06-16T12:04:40.043 に答える