Suponga que tiene el siguiente código:Manejo de excepciones: ¿Finalmente se ejecuta después del lanzamiento?
En vez de hacer:
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
me gustaría hacer:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception
Throw e
Finally
'
'Clean up initialized objects
'
End Try
Así que mi simple pregunta es: En caso de una excepción es el finalmente se llegó al bloque incluso si hay un lanzamiento de algunas líneas antes?
[EDITAR] Gracias por su respuesta rápida.
En la primera línea, habrá NullReference-, COM- y FileNotFound-Exceptions, creo.
Ok, voy a ir a por este código:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception ' or just "Catch"??
Throw
Finally
'
'Clean up initialized objects
'
End Try
Todo lo mejor!
Inno
No debe escribir 'Throw e' pero solo' Throw'. De lo contrario, restablece el seguimiento de la pila de excepciones, por lo que pierde la información sobre dónde se originó la excepción inicialmente –