nucleus Δημοσιεύτηκε Ιούλιος 25, 2016 #1 Δημοσιεύτηκε Ιούλιος 25, 2016 Συνάντησα το παρακάτω 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! Είναι σωστό ή όχι?
Wizard! Ιούλιος 25, 2016 #2 Ιούλιος 25, 2016 (edited) Λάθος συντακτικά δεν είναι, λάθος λογικά, ναι. Ο μόνος λόγος να βάλεις nested try/catch είναι αν έχεις πχ μια λούπα και θέλεις να πιάσεις το σφάλμα, και να συνεχίσεις με τα υπόλοιπα δεδομένα. Εδώ, που απλά βάζει μήνυμα, είναι ανούσιο και σκίζει λίγο τον compiler. Θα ήταν σαφώς καλύτερη πρακτική να έχει δύο: Try .... Catch ex As ΙΟException MessageBox.Show("Το μήνυμα που θέλει") Catch ex As Exception MessageBox.Show(ex.Message) End Try Έγινε επεξεργασία Ιούλιος 25, 2016 από Wizard! 2
nucleus Ιούλιος 25, 2016 Author #3 Ιούλιος 25, 2016 Και εγώ αυτό σκέφτηκα ότι το εσωτερικό try catch είναι ανούσιο. Μάλλον είναι τέσσερα τα κιλά κώδικα
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now