我有一個靜態類,沒有靜態構造函數,但有很多靜態成員。當第一次使用類時,我會拋出TypeInitializationException。調試類型初始值設定項中的異常
我打破了CLR例外,並且禁用了「Just My Code」。
問題是,我只在第一次使用這個類時纔得到這個異常;我不打破在失敗的靜態字段初始值設定項。我當然可以刪除靜態成員,直到找到罪魁禍首,但有沒有更簡單的方法?
有沒有人有任何提示調試靜態字段初始化?
我有一個靜態類,沒有靜態構造函數,但有很多靜態成員。當第一次使用類時,我會拋出TypeInitializationException。調試類型初始值設定項中的異常
我打破了CLR例外,並且禁用了「Just My Code」。
問題是,我只在第一次使用這個類時纔得到這個異常;我不打破在失敗的靜態字段初始值設定項。我當然可以刪除靜態成員,直到找到罪魁禍首,但有沒有更簡單的方法?
有沒有人有任何提示調試靜態字段初始化?
單擊Debug,Exceptions(或按下Ctrl + D,E),並在任何異常拋出時告訴Visual Studio中斷。在拋出InnerException之前,它會在發生TypeInitializationException中的封裝之前斷開,並且會拋出異常。
或者,查看InnerException的調用堆棧並查看它匹配哪個字段。
或者,嘗試在每個靜態初始化器上設置一個斷點;最後一擊是拋出異常的那一擊。
我會嘗試以下
這應該帶你到發生異常的地方。
我怎麼從未知道這件事? – 2012-07-06 17:03:43
這對我不起作用(VS2010,.Net4)。但是我可以看到內部的異常細節。我認爲原因是我使用Assembly.CreateInstance()實例化一個類型。 – redcalx 2012-12-19 12:55:03
*更新*如果我禁用*'break on throw'並禁用'只是我的代碼',我現在可以打斷點。 – redcalx 2012-12-19 13:07:49