Gestione try...catch...end try

lunedì 08 gennaio 2007 - 22.41

trinity Profilo | Guru

Scusate ragazzi mi sono sempre chiesto questo perchè se scrivo così:

Try
...codice
Catch ex As Exception
MessageBox.Show("Attenzione si è verificato un errore durante l'eliminazione del record dall'archivio.")
Exit Try
Finally
MessageBox.Show("I dati del sono stati eliminati",)
End Try

quando utilizzo il debug ed il codice passa sulla voce Exit Try non esce dal ciclo try e mi passa ugualmente nella voce Finally e se scrivo anche così avviene la stessa cosa:

Try
...codice
Catch ex As Exception
MessageBox.Show("Attenzione si è verificato un errore durante l'eliminazione del record dall'archivio.")
Go to Salta
Finally
MessageBox.Show("I dati del sono stati eliminati",)
End Try
Salta:


io vorrei in altre parole che il messaggio nel fanally ci deve stare ma se si genere un errore e pertanto si attiva il catch a questo punto vorrei che il fanally venisse saltato.

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

us01739 Profilo | Expert

Il finaly viene sempre e comunque eseguito.
Se ho capito bene, per fare come vorresti tu devi per forza utilizzare eccezioni specifiche: esempio:

try
codice
Catch ex1 As System.ServiceProcess.TimeoutException
messaggio eccezione scatenata dal timeout
Catch ex As Exception
messaggio eccezione generica
End Try
Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

maurosegato Profilo | Newbie

Ciao,
il blocco finally è quel blocco che verrà sempre eseguito alla fine di un blocco try..end try.
Pure se provi con la chiamata a return verrà eseguito il codice tra finally ... end try.
All'interno del blocco finally....end try dovresti solo eseguire operazioni di rilevante importanza che assolutamente devono essere eseguite prima di uscire dalla routine.
Quindi, visto che il messaggio che hai impostato tra finally..end try non è di rilevante importanza, è meglio che lo posizioni prima dell'inizio del blocco catch.
Nel tuo caso non ti è necessario il blocco finally e potersti farne a meno.
Ciao
Mauro Segato
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5