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! Είναι σωστό ή όχι? Link to comment Share on other sites More sharing options...
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 Link to comment Share on other sites More sharing options...
nucleus Ιούλιος 25, 2016 Author #3 Κοινοποίηση Ιούλιος 25, 2016 Και εγώ αυτό σκέφτηκα ότι το εσωτερικό try catch είναι ανούσιο. Μάλλον είναι τέσσερα τα κιλά κώδικα Link to comment Share on other sites More sharing options...
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