將此代碼放在ThisDocument_Startup之外的Word文檔級別VSTO解決方案的地方(創建一個功能區按鈕,一個點擊事件):Word VSTO在運行時吞下異常而無需調試?
int zero = 0;
int divideByZero = 10/zero;
不開始調試(按Ctrl + F5),結果:異常吞嚥,其他代碼默默地失敗。
例外將放置在ThisDocument_Startup中可見,但它不會出現在其他地方。微軟的VSTO論壇和MSDN文檔似乎覺得Try ... Catch應該被使用 - 對已知的未知數來說這不是什麼大問題。未知的未知數呢?
所有處理託管代碼未處理異常的常用方法似乎並不使用與Office COM互操作性展示託管代碼工作,因爲VSTO的大概:
//These don't work
AppDomain.CurrentDomain.UnhandledException ...
System.Windows.Forms.Application.ThreadException ...
我讀過有關解決VSTO職位總是似乎導致放置的代碼嘗試...幾乎抓住每件事物!
有沒有更好的方法來處理已知和未知(現在不可見和無聲!)失敗?
上手時會做這樣的東西,你是得心應手要小心,Word還會嘗試禁用引發異常的加載項;) – Tangocoder 2012-09-28 22:17:24