Jump to content



Proper Exception Handling or not...


Recommended Posts

Συνάντησα το παρακάτω

    Private Sub btnOpenFile_Click(sender As System.Object, e As System.EventArgs) Handles btnOpenFile.Click
        Try
            Dim openFileDialog1 As New OpenFileDialog()
            openFileDialog1.Filter = "All files | *.*;"
            'openFileDialog1.Multiselect = True
            If openFileDialog1.ShowDialog() = DialogResult.OK Then
                txtFileName.Text = openFileDialog1.FileName
                Try
                    _DocumentTypeExtention = openFileDialog1.FileName.Substring(openFileDialog1.FileName.LastIndexOf(".") + 1)
                Catch ex2 As Exception
                    Throw New Exception("Το αρχείο δεν είναι έγκυρο...")
                End Try
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

Proper exception handling ftw! Είναι σωστό ή όχι?

Link to comment
Share on other sites

Λάθος συντακτικά δεν είναι, λάθος λογικά, ναι.

Ο μόνος λόγος να βάλεις nested try/catch είναι αν έχεις πχ μια λούπα και θέλεις να πιάσεις το σφάλμα, και να συνεχίσεις με τα υπόλοιπα δεδομένα.

Εδώ, που απλά βάζει μήνυμα, είναι ανούσιο και σκίζει λίγο τον compiler.

Θα ήταν σαφώς καλύτερη πρακτική να έχει δύο:

 

Try
  ....
Catch ex As ΙΟException
            MessageBox.Show("Το μήνυμα που θέλει")
Catch ex As Exception
            MessageBox.Show(ex.Message)
End Try

 

Έγινε επεξεργασία από Wizard!
  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.