假设您有以下代码:
而不是做:
Try
'
' Initialize some objects
'
'
' do something that fails
'
'
' Clean up-code that gets not reached because exception
'
Catch e As Exception
'
'Clean up initialized objects
'
Throw e
End Try我想做的是:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception
Throw e
Finally
'
'Clean up initialized objects
'
End Try所以我的简单问题是:在发生异常的情况下,是否到达了finally块,即使有抛出之前的一些行?
EDIT感谢您的快速回答。
在第一行将会有NullReference-,COM-和FileNotFound-异常。
好的,我将使用下面的代码:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception ' or just "Catch"??
Throw
Finally
'
'Clean up initialized objects
'
End Try万事如意!
Inno
发布于 2009-10-16 09:26:00
在几乎所有的情况下,Finally都会在Try/Catch块中执行(值得注意的例外情况包括发生StackOverflowException或OutOfMemoryException时)。我很好奇,为什么你不亲自尝试一下呢?学习东西的一个有价值的方法是亲自尝试--毕竟,你最终可能会接受一个错误或误导性的答案,从那时起,你就会在这个错误中苦苦挣扎。
https://stackoverflow.com/questions/1577049
复制相似问题