2011-06-12 79 views
13

在以前版本的Visual Studio中,只有一個入口指向擴展(更具體地說,插件)OnConnect方法。從那裏可以執行所有的Visual Studio操作,比如添加菜單項並設置一個全局異常處理程序,以優雅地處理未處理的異常。爲Visual Studio 2010製作全局異常處理程序VsPackage

在Visual Studio 2010的VSPackage的,事物的工作方式不同 - 應用程序(如IWpfTextView)的許多部分是由MEF組成和下載,而包的顯式控制,使得處理那些非常困難的未來的任何異常。

如果沒有明確地將所有這些組件包裝在自己的try..catch中,我如何在VsPackage中有效地爲(非關鍵)異常實現一個全局處理程序? 同樣,我們的目標是像ReSharper的異常對話框那樣,它可以處理全局異常而不會使Visual Studio崩潰。

+0

嗯,夥計。我剛剛給以利沙寫了一封信,提出了幾乎同樣的問題。咄。 – Restuta 2011-06-15 22:46:12

+0

考慮增加一個賞金=) – Restuta 2011-06-15 22:53:16

回答

3

我通過閱讀官方VsExtensibility論壇,並根據thisthis線程有沒有這樣一個地方掛鉤用於捕獲所有異常探討這個話題。因此,典型的解決方案將使用嘗試...捕獲無處不在。

我建議使用像PostSharp這樣的AOP框架之一來完成這個屬性,以消除大量蹩腳的重複代碼,只有目的是處理未處理的異常。