我有一個try-catch塊這樣的:爲什麼Real Studio會破壞異常的捕獲?
Try
Listbox1.RemoveRow(Listbox1.ListIndex)
Catch err As OutOfBoundsException
MsgBox("Derp")
End Try
當我在調試器中運行項目中,我得到確切的線,我試圖抓住一個OutOfBoundsException!爲什麼這不起作用?!?
我有一個try-catch塊這樣的:爲什麼Real Studio會破壞異常的捕獲?
Try
Listbox1.RemoveRow(Listbox1.ListIndex)
Catch err As OutOfBoundsException
MsgBox("Derp")
End Try
當我在調試器中運行項目中,我得到確切的線,我試圖抓住一個OutOfBoundsException!爲什麼這不起作用?!?
在我看來,調試器會在該行中斷並向您顯示異常。但是,如果你擊中簡歷,它會繼續,捕捉異常,然後顯示消息。
也許他們改變了這個版本的調試器的行爲。
更新:你可以去項目>打破異常改變這種
調試器會立即在遇到異常突破,之前的任何其他代碼得到執行。這包括您可能已經放入的任何異常處理代碼,如Try ... Catch塊。
如果您有一些代碼會引發很多異常,並且您不必在每次調試時都要經過它,那麼您有兩種選擇:核和外科手術。
核選項是告訴調試器不要中斷任何異常,這會給應用到整個項目上帶來不幸的副作用,而不是你除了它的一小部分外。
的手術方案是使用pragma directives切換打破異常關閉,周圍的麻煩代碼:
#Pragma BreakOnExceptions Off
try
Listbox1.RemoveRow Listbox1.ListIndex
catch err As OutOfBoundsException
MsgBox "Derp"
End
#Pragma BreakOnExceptions On
這是更爲最好後來乾脆完全關閉調試器的一部分。注意:一旦函數返回,BreakOnExepctions指令將恢復爲全局設置(打開或關閉),並且它位於其圍繞的代碼的本地。