Si supponga di avere il seguente codice:Gestione delle eccezioni: viene infine eseguito dopo il lancio?
Invece di fare:
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
Vorrei fare:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception
Throw e
Finally
'
'Clean up initialized objects
'
End Try
Quindi la mia semplice domanda è: In caso di eccezione è il finalmente blocco raggiunto anche se c'è un lancio di alcune linee prima?
[EDIT] Grazie per le risposte veloci.
Nella prima riga ci saranno NullReference-, COM- e FileNotFound-Exceptions.
Ok, andrò per questo codice:
Try
'
' Initialize some objects
'
'
' do something that fails
'
Catch e As Exception ' or just "Catch"??
Throw
Finally
'
'Clean up initialized objects
'
End Try
Tutto il meglio!
Inno
Non si dovrebbe scrivere "Getta e' ma solo" Getta ". Altrimenti, si ripristina la traccia dello stack di eccezioni, quindi si perdono le informazioni su dove inizialmente è stata sollevata l'eccezione –