Giả sử bạn có đoạn mã sau:Xử lý ngoại lệ: Cuối cùng được thực hiện sau khi ném?
Thay vì thực hiện:
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
Tôi muốn làm:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception
Throw e
Finally
'
'Clean up initialized objects
'
End Try
Vì vậy, câu hỏi đơn giản của tôi là: Trong trường hợp ngoại lệ là cuối cùng khối đạt được ngay cả khi có một ném một số dòng trước?
[EDIT] Cảm ơn câu trả lời nhanh của bạn.
Trong dòng đầu tiên sẽ có NullReference-, COM- và FileNotFound-Exceptions tôi nghĩ.
Ok, tôi sẽ đi cho mã này:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception ' or just "Catch"??
Throw
Finally
'
'Clean up initialized objects
'
End Try
Tất cả là tốt nhất!
Inno
Bạn không nên viết 'Ném e' mà chỉ là' Ném '. Nếu không, bạn đặt lại dấu vết ngăn xếp ngoại lệ, vì vậy bạn sẽ mất thông tin về nơi ngoại lệ được nêu ban đầu –