Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 21123|Απάντηση: 0

[Πηγή] Εξαιρέσεις και χειρισμός εξαιρέσεων (Οδηγός προγραμματισμού C#)

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 12/4/2015 10:22:03 μ.μ. | | |

Η δυνατότητα χειρισμού εξαιρέσεων της γλώσσας C# σάς βοηθά να χειρίζεστε τυχόν απροσδόκητες ή ασυνήθιστες καταστάσεις που προκύπτουν κατά την εκτέλεση του προγράμματός σας. Ο χειρισμός εξαιρέσεων χρησιμοποιεί τις λέξεις-κλειδιά try, catch και, τέλος, για να δοκιμάσει ορισμένες λειτουργίες για να χειριστεί αποτυχίες, και παρόλο που αυτές οι λειτουργίες έχουν τη δυνατότητα να αποτύχουν, μπορείτε να προσπαθήσετε να το κάνετε εάν είστε βέβαιοι ότι πρέπει να το κάνετε αυτό και θέλετε να καθαρίσετε τους πόρους στη συνέχεια. Χρόνος εκτέλεσης κοινής γλώσσας (CLR), . Το NET Framework ή οποιαδήποτε βιβλιοθήκη ή κώδικας εφαρμογής τρίτου μέρους μπορεί να δημιουργήσει εξαιρέσεις. Οι εξαιρέσεις δημιουργούνται χρησιμοποιώντας τη λέξη-κλειδί ρίψης.
Σε πολλές περιπτώσεις, οι εξαιρέσεις μπορεί να μην προκύψουν από μια μέθοδο που καλείται απευθείας με κώδικα, αλλά με μια άλλη μέθοδο πιο κάτω στη στοίβα κλήσεων. Σε αυτήν την περίπτωση, το CLR επεκτείνει τη στοίβα για να δει εάν υπάρχει μια μέθοδος που περιέχει ένα μπλοκ σύλληψης για τον συγκεκριμένο τύπο εξαίρεσης και εάν βρει μια τέτοια μέθοδο, εκτελεί το πρώτο τέτοιο μπλοκ σύλληψης που βρέθηκε. Εάν δεν βρεθεί κατάλληλο μπλοκ σύλληψης πουθενά στη στοίβα κλήσεων, η διαδικασία τερματίζεται και εμφανίζεται ένα μήνυμα στον χρήστη.
Σε αυτό το παράδειγμα, χρησιμοποιείται μια μέθοδος για να ανιχνευθεί εάν υπάρχει μια κατάσταση όπου διαιρείται με το μηδέν. Εάν υπάρχει, το σφάλμα συλλαμβάνεται. Εάν δεν υπάρχει χειρισμός εξαιρέσεων, αυτό το πρόγραμμα θα τερματιστεί και θα εμφανίσει ένα σφάλμα "DivideByZeroException Not Handled".
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Αντιγραφή κώδικα






Προηγούμενος:Η C# καθορίζει εάν μια συμβολοσειρά περιέχει έναν χαρακτήρα
Επόμενος:Προσδιορίστε εάν ένας ιστότοπος έχει δημιουργηθεί από το πρόγραμμα φόρουμ Discuz
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com