Ας το σπάσουμε:
1. Εξαιρέσεις εντός εφαρμογών MACOS (Στόχος-C, SWIFT):
Αυτά αντιμετωπίζονται χρησιμοποιώντας τον οικείο μηχανισμό δοκιμής-catch (ή δοκιμής εκτός από το SWIFT). Παραδείγματα περιλαμβάνουν:
* `nsexception` (αντικειμενικός-c): Μια κατηγορία βάσης για εξαιρέσεις στο αντικειμενικό-C. Οι υποκατηγορίες αντιπροσωπεύουν συγκεκριμένες συνθήκες σφάλματος (π.χ., «NSRangeException» για πρόσβαση σε έναν πίνακα εκτός των ορίων). Θα τα πιάσατε χρησιμοποιώντας `@try`,`@catch` και `@τελικά 'μπλοκ.
* Χειρισμός σφαλμάτων στο Swift: Το Swift χρησιμοποιεί μια πιο σύγχρονη προσέγγιση. Τα σφάλματα αντιπροσωπεύονται ως συμμορφώσεις πρωτοκόλλου `σφάλμα 'και τα χειρίζεστε χρησιμοποιώντας μπλοκ` do-catch`. Αυτό παρέχει περισσότερη ασφάλεια τύπου και καλύτερες πληροφορίες σφάλματος. Παραδείγματα περιλαμβάνουν το `nserror` (που χρησιμοποιείται ακόμα για διαλειτουργικότητα με τον αντικειμενικό κώδικα-C) ή τους προσαρμοσμένους τύπους σφαλμάτων.
2. Εξαιρέσεις σε χαμηλότερο επίπεδο (πανικές πυρήνας):
Αυτά είναι πιο σοβαρά και συχνά δείχνουν προβλήματα στον ίδιο τον πυρήνα MacOS (τον πυρήνα του λειτουργικού συστήματος). Δεν χειρίζονται με μπλοκ δοκιμής στον κώδικα χώρου χρήστη. Ένας πανικός του πυρήνα συνήθως οδηγεί στην κατάψυξη του συστήματος και απαιτώντας επανεκκίνηση. Οι αιτίες περιλαμβάνουν:
* αποτυχίες υλικού: Προβλήματα με μνήμη RAM, σκληρό δίσκο, κ.λπ.
* Σφάλματα λογισμικού: Βαθιά ελαττώματα στον πυρήνα ή τα προγράμματα οδήγησης συσκευών.
* Εξάντληση πόρων συστήματος: Εκτέλεση μνήμης ή άλλων κρίσιμων πόρων.
3. Σήματα:
Τα σήματα είναι ένας άλλος μηχανισμός για τον χειρισμό εξαιρετικών καταστάσεων, ειδικά εκείνων που σχετίζονται με εξωτερικά γεγονότα ή σφάλματα χαμηλού επιπέδου. Δεν είναι αυστηρά "εξαιρέσεις" με την ίδια έννοια με το χειρισμό `nsexception` ή swift 'σφάλμα', αλλά εξυπηρετούν έναν παρόμοιο σκοπό της διακοπής της κανονικής ροής του προγράμματος. Τα σήματα χρησιμοποιούνται συχνά για την αντιμετώπιση συμβάντων όπως διακοπές, αιτήματα τερματισμού ή σφάλματα κατάτμησης. Θα χρησιμοποιούσατε λειτουργίες όπως το `signal ()` για να εγγραφείτε χειριστές για συγκεκριμένα σήματα.
Συνοπτικά:
Οι "εξαιρέσεις MAC" δεν είναι ένας ακριβώς καθορισμένος όρος. Περιλαμβάνει μια σειρά μηχανισμών χειρισμού σφαλμάτων, από τον δομημένο χειρισμό εξαίρεσης στον κώδικα εφαρμογής (το NESEXIce της NSEXECKENT και το SWIFT) για τους πιο καταστροφικούς πανικούς πυρήνα και το χειρισμό σήματος χαμηλότερου επιπέδου. Η κατάλληλη προσέγγιση εξαρτάται από το πλαίσιο και τη σοβαρότητα του σφάλματος. Για τον τυπικό προγραμματισμό σε εφαρμογές MACOS, εστιάζοντας στον χειρισμό σφαλμάτων της SWIFT ή στο αντικειμενικό CHANDING της «NSEXception» του αντικειμενικού C είναι ο πιο σημαντικός. Οι πανικές του πυρήνα είναι ένα διαφορετικό θηρίο εξ ολοκλήρου, απαιτώντας έρευνα σε επίπεδο συστήματος και αντιμετώπιση προβλημάτων.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα