Λειτουργικά συστήματα

Γνώση Υπολογιστών >> Λειτουργικά συστήματα >  >> Mac OS

Τι είναι οι εξαιρέσεις MAC;

Οι εξαιρέσεις MAC, όπως οι εξαιρέσεις σε άλλες γλώσσες προγραμματισμού, είναι γεγονότα που συμβαίνουν κατά την εκτέλεση ενός προγράμματος που διαταράσσει την κανονική ροή των οδηγιών. Σηματοδοτούν ότι έχει συμβεί κάτι απροσδόκητο ή λανθασμένο. Ωστόσο, οι λεπτομέρειες του τρόπου με τον οποίο χειρίζονται εξαρτώνται σε μεγάλο βαθμό από το πλαίσιο:μιλάμε για εξαιρέσεις μέσα σε μια εφαρμογή MACOS (χρησιμοποιώντας το Objective-C, Swift ή άλλες γλώσσες) ή εξαιρέσεις σε χαμηλότερο επίπεδο (για παράδειγμα οι Panics Kernel);

Ας το σπάσουμε:

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 είναι ο πιο σημαντικός. Οι πανικές του πυρήνα είναι ένα διαφορετικό θηρίο εξ ολοκλήρου, απαιτώντας έρευνα σε επίπεδο συστήματος και αντιμετώπιση προβλημάτων.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα