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 Λάθος συντακτικά δεν είναι, λάθος λογικά, ναι. Ο μόνος λόγος να βάλεις nested try/catch είναι αν έχεις πχ μια λούπα και θέλεις να πιάσεις το σφάλμα, και να συνεχίσεις με τα υπόλοιπα δεδομένα. Εδώ, που απλά βάζει μήνυμα, είναι ανούσιο και σκίζει λίγο τον compiler. Θα ήταν σαφώς καλύτερη πρακτική να έχει δύο: Try .... Catch ex As ΙΟException MessageBox.Show("Το μήνυμα που θέλει") Catch ex As Exception MessageBox.Show(ex.Message) End Try
nucleus Ιούλιος 25, 2016 Author #3 Ιούλιος 25, 2016 Και εγώ αυτό σκέφτηκα ότι το εσωτερικό try catch είναι ανούσιο. Μάλλον είναι τέσσερα τα κιλά κώδικα
Recommended Posts
Archived
This topic is now archived and is closed to further replies.