我有一个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指令将恢复为全局设置(打开或关闭),并且它位于其围绕的代码的本地。