c exception handling tutorial with code examples
Ο χειρισμός εξαίρεσης είναι μια μέθοδος χειρισμού σφαλμάτων που ενδέχεται να προκύψουν κατά την εκτέλεση ενός προγράμματος. Αυτό το σεμινάριο εξηγεί τον χειρισμό εξαίρεσης σε C # με παραδείγματα κώδικα:
youtube to mp4 converter δωρεάν λήψη πλήρους έκδοσης
Ο χειρισμός εξαίρεσης χρησιμοποιείται για να διασφαλιστεί ότι η ροή του προγράμματος συνεχίζεται ακόμα και αν υπάρχει σφάλμα χρόνου εκτέλεσης. Εξαιρέσεις είναι τα αντικείμενα που ρίχνονται ενώ αντιμετωπίζουν οποιοδήποτε σφάλμα χρόνου εκτέλεσης.
Εάν οι εξαιρέσεις δεν αντιμετωπιστούν, τότε το C # θα παράγει ένα μήνυμα εξαίρεσης και θα τερματίσει το πρόγραμμα, εδώ είναι όπου ο χειρισμός εξαιρέσεων έρχεται στην εικόνα.
=> Διαβάστε τον Οδηγό C # για αρχάριους εδώ
Τι θα μάθετε:
- Τι είναι οι εξαιρέσεις;
- Λέξεις κλειδιά για χειρισμό εξαιρέσεων
- Μαθήματα εξαίρεσης που υπάρχουν στο C #
- Χειρισμός εξαίρεσης σε C #
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Τι είναι οι εξαιρέσεις;
Οι εξαιρέσεις είναι πρωτοφανή σφάλματα που ενδέχεται να προκύψουν στο πρόγραμμά σας κατά τη διάρκεια του χρόνου εκτέλεσης. Τις περισσότερες φορές οι προγραμματιστές μπορούν εύκολα να εντοπίσουν ορισμένα από τα σφάλματα, όπως επικύρωση ή μηδενικός έλεγχος ή κατά την επαλήθευση ορισμένων τιμών.
Αλλά υπάρχουν ορισμένες στιγμές που δεν μπορούμε να προβλέψουμε τι ή πότε θα εμφανιστεί ένα σφάλμα. Για παράδειγμα, ας πούμε ότι ψάχνω ένα αρχείο σε μια τοποθεσία. Το πρόγραμμά μου θα τρέξει πολύ καλά έως ότου υπάρχει το αρχείο και αν κατά κάποιο τρόπο το αρχείο διαγραφεί τότε το πρόγραμμά μου θα εμφανίσει ένα σφάλμα.
Οι εξαιρέσεις δεν συμβαίνουν σε τακτική βάση, αλλά μπορούν ακόμη να συμβούν και θα θέλετε πάντα να τις χειρίζεστε προσεκτικά. Για να τα χειριστούμε χρησιμοποιούμε τον χειρισμό εξαιρέσεων.
Κάθε φορά που εμφανίζεται ένα σφάλμα λέμε ότι ρίχνεται, το 'ρίχνεται' είναι ένα αντικείμενο από Σύστημα. Εξαίρεση τάξη σε C #. ο Σύστημα. Εξαίρεση Η τάξη προσφέρει διαφορετικές μεθόδους και ιδιότητες που παρέχουν λεπτομέρειες σχετικά με το σφάλμα που μόλις αντιμετώπισε το πρόγραμμά σας.
καλύτερο spyware για κινητά τηλέφωνα Android
Όπως η ιδιότητα ανίχνευσης στοίβας που παρέχει τη στοίβα για την οποία προέκυψε το πρόβλημα ή την ιδιότητα Μήνυμα που παρέχει μια περιγραφή της εξαίρεσης.
Λέξεις κλειδιά για χειρισμό εξαιρέσεων
Οι εξαιρέσεις προσφέρουν μια διαδικασία ελέγχου ενός συγκεκριμένου μέρους του προγράμματος, έτσι ώστε ακόμη και αν υπάρχει εξαίρεση σε αυτό το τμήμα, τότε ο έλεγχος του προγράμματος μεταφέρεται σε άλλο μέρος του προγράμματος. Στο C # εξαίρεση ο χειρισμός βασίζεται βασικά σε τέσσερις λέξεις-κλειδιά: ρίξτε, δοκιμάστε, πιάστε και τέλος .
βολή
Όπως έχουμε ήδη συζητήσει η ρίψη είναι ένα αντικείμενο από Σύστημα. Εξαίρεση τάξη στο C #. Επιτρέπει στο πρόγραμμα να ρίχνει ένα σφάλμα όποτε συναντά ένα.
προσπαθήστε
Δοκιμάστε το μπλοκ περικλείει το μπλοκ του κώδικα που μπορεί να προκαλέσει την εξαίρεση του προγράμματος. Ακολουθεί ένα ή περισσότερα μπλοκ.
σύλληψη
Όταν προσπαθείτε να μπλοκ συναντήσετε μια εξαίρεση, παρέχει τον έλεγχο στο μπλοκ catch για να πιάσετε την εξαίρεση. Το μπλοκ catch μπορεί επίσης να περιέχει ένα σύνολο κωδικών που πρέπει να εκτελέσει το πρόγραμμα σε περίπτωση εξαίρεσης ή μπορεί απλά να πιάσει την εξαίρεση και να μην κάνει τίποτα ανάλογα με το σενάριο και την απαίτηση.
τελικά
Το τελικό μπλοκ χρησιμοποιείται για την εκτέλεση ενός συγκεκριμένου αποσπάσματος κώδικα ή εντολής ανεξάρτητα από την εμφάνιση εξαίρεσης. Τέλος, το μπλοκ εκτελείται πάντα και μπορεί να εκτελεστεί αμέσως μετά το μπλοκ δοκιμών εάν το πρόγραμμα δεν βρει καμία εξαίρεση ή μπορεί να εκτελεστεί μετά το μπλοκ σύλληψης μόλις το πρόγραμμα πιάσει μια εξαίρεση.
Μαθήματα εξαίρεσης που υπάρχουν στο C #
Όλες οι εξαιρέσεις στο C # προέρχονται άμεσα ή έμμεσα από το Σύστημα. Εξαίρεση τάξη.
Ας ρίξουμε μια σύντομη ματιά σε μερικές από τις πιο κοινές εξαιρέσεις:
- System.IO.IO Εξαίρεση: Αντιμετωπίζει τυχόν σφάλματα που σχετίζονται με την είσοδο και την έξοδο.
- System.DividedByZeroException: Χειρίζεται λάθος που λαμβάνονται όταν ένας αριθμός διαιρείται με μηδέν.
- System.NullReferenceException : Αντιμετωπίζει τυχόν σφάλμα που μπορεί να προκύψει κατά την αναφορά ενός μηδενικού αντικειμένου.
- System.IndexOutOfRangeException: Αντιμετωπίζει το σφάλμα που εμφανίζεται όταν ένα πρόγραμμα προσπαθεί να αποκτήσει πρόσβαση σε ένα ευρετήριο που είναι εκτός εύρους για τον πίνακα.
- System.OutOfMemoryException: Αντιμετωπίζει το σφάλμα που παρουσιάστηκε λόγω ανεπαρκούς παρουσίας μνήμης.
Χειρισμός εξαίρεσης σε C #
Το C # έχει μια πολύ καλά καθορισμένη λύση για τον χειρισμό οποιουδήποτε τύπου εξαίρεσης που μπορεί να προκύψει χρησιμοποιώντας το μπλοκ try and catch. Χρησιμοποιώντας αυτό το μπλοκ, η βασική δήλωση του προγράμματος μπορεί να διαχωριστεί από τις άλλες δηλώσεις.
Παράδειγμα:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } Console.ReadLine(); } } }
Στο παραπάνω παράδειγμα, έχουμε κλείσει τον κωδικό μας για το άνοιγμα ενός αρχείου κάτω από το μπλοκ δοκιμής. Δεδομένου ότι δεν έχουμε παράσχει έγκυρη διαδρομή αρχείου, ο κώδικας πρέπει να προκαλέσει σφάλμα. Τώρα, εντοπίσαμε το σφάλμα στο μπλοκ catch. Εάν το αρχείο δεν υπάρχει στη δεδομένη διαδρομή αρχείου, τότε ο κώδικας θα ρίξει ένα FileNotFoundException.
Αυτή η εξαίρεση θα καλυφθεί από το μπλοκ catch όπου έχουμε ήδη ορίσει την αναμενόμενη εξαίρεση. Τώρα, ας φανταστούμε αν ο κώδικάς μας ρίξει κάποια άλλη εξαίρεση, εκτός από αυτήν που έχουμε ήδη ορίσει, τότε το μπλοκ μας δεν θα μπορεί να το πιάσει. Για να πιάσουμε οποιαδήποτε γενική εξαίρεση, θα προσθέσουμε ένα άλλο μπλοκ catch.
Ας ρίξουμε μια ματιά στον ενημερωμένο κώδικα:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadLine(); } } }
Αυτό το γενικό μπλοκ σύλληψης θα μπορεί να πιάσει όλες τις εξαιρέσεις που μπορεί να ρίχνονται μέσα στο μπλοκ δοκιμής. Τώρα, ας προσθέσουμε επίσης ένα μπλοκ επιτέλους για να το ολοκληρώσουμε. Για να το κάνουμε απλό, ας εκτυπώσουμε ένα μήνυμα χρησιμοποιώντας το μπλοκ επιτέλους.
χειροκίνητες ερωτήσεις και απαντήσεις συνέντευξης δοκιμών pdf
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
Εδώ, μόλις προσθέσαμε το μπλοκ επιτέλους με ένα απλό μήνυμα. Μπορείτε επίσης να προσθέσετε μερικές προσαρμοσμένες δηλώσεις στο μπλοκ. Αλλά η συνολική δομή του προγράμματος θα παραμείνει παρόμοια με αυτήν που εμφανίζεται εδώ.
Το μπλοκ Τέλος θα εκτελείται πάντα ανεξάρτητα από το αν υπάρχει εξαίρεση ή όχι. Το πρόγραμμα θα ξεκινήσει από το μπλοκ δοκιμής και μετά θα μετακινηθεί απευθείας στο μπλοκ επιτέλους εάν δεν υπάρχουν σφάλματα / εξαιρέσεις. Εάν συναντήσει μια εξαίρεση, τότε θα μετακινηθεί για να πιάσει πρώτα και στη συνέχεια θα εκτελέσει το τελικό μπλοκ.
Υπάρχει μια προϋπόθεση όταν το τελευταίο μπλοκ δεν θα εκτελεστεί;
Όπως υποδηλώνει το όνομα το τελικό μπλοκ εκτελείται στο τέλος και είναι το τελευταίο μπλοκ του κώδικα που θα εκτελεστεί. Τέλος, το μπλοκ θα εκτελείται πάντα όταν εκτελείται η εφαρμογή. Η μόνη στιγμή που τελικά δεν θα εκτελεστεί το μπλοκ είναι όταν η εφαρμογή διακοπεί ή σκοτώνεται σκόπιμα χρησιμοποιώντας την εντολή διαδικασίας.
συμπέρασμα
Εάν οι εξαιρέσεις δεν αντιμετωπιστούν σωστά, τότε θα προκαλέσουν σφάλμα στο πρόγραμμά σας. Εάν δεν έχετε χρησιμοποιήσει μπλοκ δοκιμής / σύλληψης οπουδήποτε μέσα στον κώδικά σας, τότε το πρόγραμμά σας θα ακυρωθεί με ένα μήνυμα που δείχνει την εξαίρεση. Σε έναν γενικό χρήστη, θα είναι πολύ δύσκολο να εντοπιστεί το σφάλμα στον πηγαίο κώδικα και να το επιλυθεί.
Ως εκ τούτου, είναι πάντα μια καλή πρακτική να παρέχετε εξαίρεση χειρισμού στο πρόγραμμά σας.
Δείγμα κώδικα
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
=> Δείτε την πλήρη σειρά C # Training εδώ
Συνιστώμενη ανάγνωση
- C # Λειτουργίες / Μέθοδοι Εκμάθηση με παραδείγματα κώδικα
- Εκμάθηση Python DateTime με παραδείγματα
- Εκπαιδευτικό πρόγραμμα SVN: Διαχείριση πηγαίου κώδικα χρησιμοποιώντας ανατροπή
- C # String Tutorial - Μέθοδοι συμβολοσειράς με παραδείγματα κώδικα
- Εξαίρεση χειρισμός σε C ++
- Tutorial Tortoise SVN: Αναθεωρήσεις στο αποθετήριο κώδικα
- AWS CodeBuild Tutorial: Εξαγωγή κώδικα από το Maven Build
- Πώς να χειριστείτε την εξαίρεση σε δέσμες ενεργειών SoapUI Groovy - SoapUI Tutorial # 11