Γιατί τα προγράμματα καταρρέουν

Γιατί τα προγράμματα καταρρέουν
Γιατί τα προγράμματα καταρρέουν

Βίντεο: Γιατί τα προγράμματα καταρρέουν

Βίντεο: Γιατί τα προγράμματα καταρρέουν
Βίντεο: Νικόλας Άσιμος • Καταρρέω 2024, Απρίλιος
Anonim

Η ποικιλία των εργασιών που επιλύονται σήμερα με τη βοήθεια προσωπικών υπολογιστών παρέχεται από την ύπαρξη ενός τεράστιου συνόλου προγραμμάτων εφαρμογών. Η ευκολία εργασίας με το λογισμικό εξαρτάται σε μεγάλο βαθμό από την αξιοπιστία του, η οποία εκφράζεται όταν δεν υπάρχουν καταστάσεις έκτακτης ανάγκης. Ωστόσο, πολλά προγράμματα καταρρέουν την πιο ακατάλληλη στιγμή. Γιατί;

Γιατί
Γιατί

Ο μηχανισμός εξαίρεσης χρησιμοποιείται για την παρακολούθηση και τον χειρισμό ειδικών, μη φυσιολογικών ή λανθασμένων καταστάσεων που προκύπτουν κατά τη λειτουργία προγραμμάτων υπολογιστών υπό τον έλεγχο σύγχρονων λειτουργικών συστημάτων. Εξαιρέσεις μπορεί να είναι το υλικό (ρίχνεται από τον επεξεργαστή) και το λογισμικό (ρίχνονται από την ίδια την εφαρμογή ή κάποιο πρόσθετο εξωτερικό στοιχείο).

Ανεξάρτητα από τον τύπο, η εξαίρεση μπορεί να συλληφθεί και να αντιμετωπιστεί σωστά. Οι ανεκμετάλλευτες εξαιρέσεις πηγαίνουν στον διαχειριστή της βιβλιοθήκης ρίζας χρόνου εκτέλεσης ή σε έναν χειριστή εγκατεστημένο σε λειτουργικό σύστημα. Εάν συμβεί αυτό, το πρόγραμμα διακόπτεται με ένα μήνυμα ή ένα μη φυσιολογικό παράθυρο τερματισμού (στα Windows). Εάν ο χειριστής του λειτουργικού συστήματος δεν λειτούργησε (για παράδειγμα, αφαιρέθηκε σκόπιμα), το πρόγραμμα "διακόπτεται σιωπηλά". Έτσι, τα προγράμματα διακόπτονται λόγω εξαιρέσεων που δεν μπορούν να αντιμετωπιστούν. Οι λόγοι για την εμφάνιση εξαιρέσεων είναι διαφορετικοί.

Στη συντριπτική πλειονότητα των περιπτώσεων, τα προγράμματα καταρρέουν λόγω της εκτέλεσης του δικού τους κώδικα που περιέχει ρητά ή έμμεσα σφάλματα εφαρμογής. Ο κατάλογος πιθανών αιτιών έκτακτης ανάγκης είναι πολύ μακρύς. Αυτά είναι και τα δύο κλασικά σφάλματα λειτουργιών σε αριθμούς κινητής υποδιαστολής (για παράδειγμα, διαίρεση με 0) και σφάλματα εργασίας με μνήμη (ανάγνωση ή εγγραφή εκτός του χώρου διευθύνσεων της διαδικασίας, πρόσβαση σε προστατευμένες σελίδες, εγγραφή σε μια περιοχή μνήμης μόνο για ανάγνωση), στοίβα υπερχείλισης λόγω άπειρης επανάληψης κ.λπ. Σε αυτές τις περιπτώσεις, οι εξαιρέσεις υλικού ή εξαιρέσεις λειτουργικού συστήματος ρίχνονται.

Τα σιωπηρά σφάλματα περιλαμβάνουν διάφορες περιπτώσεις ανεπαρκούς φιλτραρίσματος δεδομένων εισόδου, έλλειψη επικύρωσης τιμών δείκτη και πολλά άλλα. Τέτοιες ελλείψεις οδηγούν σε εξαιρετικές καταστάσεις μόνο σε ορισμένες περιπτώσεις.

Σφάλματα εφαρμογής μπορούν επίσης να βρεθούν σε εξωτερικά στοιχεία που χρησιμοποιούνται από την εφαρμογή. Για παράδειγμα, σε δυναμικές βιβλιοθήκες που παρέχουν την απαραίτητη λειτουργικότητα ή πρόσθετες ενότητες. Ο κωδικός προγράμματος που φορτώνεται σιωπηρά στο χώρο διευθύνσεων μιας διαδικασίας (για παράδειγμα, προκειμένου να παρακολουθούν ορισμένες λειτουργίες API) μπορεί επίσης να προκαλέσει διακοπή λειτουργίας του προγράμματος.

Πολλά στοιχεία και βιβλιοθήκες (για παράδειγμα, ADO σε Windows) χρησιμοποιούν τον μηχανισμό εξαίρεσης μέσω προγραμματισμού ως προτεραιότητα για την αναφορά σφαλμάτων. Η απουσία ή ο ελλιπής χειρισμός εξαιρέσεων από αυτού του είδους την εφαρμογή μπορεί να οδηγήσει σε διακοπή λειτουργίας ακόμη και σε εντελώς αβλαβείς καταστάσεις (όπως απώλεια σύνδεσης με τη βάση δεδομένων).

Συνιστάται: