Il Try...Catch è (a mio modesto parere), migliore dell'ON ERROR perchè:
- Mettiamo che all'interno del Try hai del codice che può generare un'eccezione e che se la genera manda a monte tutto il resto del Try... non hai problemi, perchè il Try si ferma (mi spiego con un esempio, che è meglio:
In questo caso, se la conversione va a monte, non ho problemi (come mi sembra ce ne siano con ON ERROR, che però non ho mai usato);codice:Dim TextBox1 As New TextBox Dim MiaStringa As String = "PincoPallo" Try Dim Prezzo As Integer = CInt(MiaStringa) TextBox1.Text = CStr(Prezzo + 5) Catch ex As InvalidCastException MessageBox.Show(ex.Message) End Try
- Le eccezioni risalgono lo Stack finchè non trovano un blocco Try...Catch adatto a gestirle. Esempio:
codice:Private Sub VerificaTry() Try GeneraEccezione() Catch ex As IO.InvalidDataException MessageBox.Show("InvalidArgumentException") End Try End Sub Private Sub GeneraEccezione() Try Throw New IO.IOException Catch ex As IO.IOException MessageBox.Show("IoException") End Try Try Throw New IO.InvalidDataException Catch ex As OverFlowException MessageBox.Show("OverFlowException") End Try End Sub

Rispondi quotando