1. Προσδιορίστε το μήνυμα σφάλματος:
Η πιο κρίσιμη πληροφορία είναι το ίδιο το μήνυμα σφάλματος. Συνήθως σας λέει:
* Ο τύπος σφάλματος: (π.χ., `indexerror`,` typeError`, `zerodivisionError`,` filenotfounderror`, `nameerror ',` memoryerror', κλπ.) Αυτό δείχνει το * είδος του προβλήματος.
* Η θέση του σφάλματος: (π.χ. όνομα αρχείου και αριθμός γραμμής). Αυτό εντοπίζει * όπου * στον κώδικα σας συνέβη το σφάλμα.
* Σύντομη περιγραφή: Αυτό παρέχει πρόσθετο πλαίσιο, συχνά δείχνοντας την αιτία.
2. Κατανοήστε τον τύπο σφάλματος:
Κάθε τύπος σφάλματος έχει συγκεκριμένο νόημα:
* `indexerror`: Προσπαθώντας να αποκτήσετε πρόσβαση σε ένα στοιχείο σε μια λίστα, μια πλειάδα ή συστοιχία χρησιμοποιώντας ένα δείκτη που είναι εκτός ορίων (π.χ. προσπαθώντας να αποκτήσετε πρόσβαση στο 10ο στοιχείο μιας λίστας 9 στοιχείων).
* `TypeError`: Εκτέλεση μιας λειτουργίας σε ασυμβίβαστους τύπους δεδομένων (π.χ. προσθέτοντας μια συμβολοσειρά σε ακέραιο).
* `zerodivisionError`: Διαιρώντας με μηδέν.
* `filenotfounderror`: Προσπαθώντας να ανοίξετε ένα αρχείο που δεν υπάρχει.
* `nameerror`: Χρησιμοποιώντας μια μεταβλητή που δεν έχει οριστεί.
* `MemoryError`: Εκτέλεση της διαθέσιμης μνήμης.
* `valueError`: Η συνάρτηση λαμβάνει ένα επιχείρημα του σωστού τύπου αλλά μια ακατάλληλη τιμή.
* `attributeerror`: Προσπαθώντας να αποκτήσετε πρόσβαση σε ένα χαρακτηριστικό (μέθοδο ή ιδιότητα) που δεν υπάρχει σε ένα αντικείμενο.
* `ioerror`: Ένα γενικό σφάλμα που σχετίζεται με τις λειτουργίες εισόδου/εξόδου (συχνά χειρισμό αρχείων).
* `importerror`: Δεν είναι δυνατή η εισαγωγή μιας ενότητας.
3. Εντοπίστε τον πηγαίο κώδικα:
Χρησιμοποιήστε το όνομα του αρχείου και τον αριθμό γραμμής που παρέχεται στο μήνυμα σφάλματος για να βρείτε την ακριβή θέση στον κωδικό σας όπου προέκυψε το σφάλμα.
4. Εντοπισμός του κώδικα:
* Εξετάστε τον κώδικα γύρω από το σφάλμα: Κοιτάξτε τις γραμμές του κώδικα αμέσως πριν και μετά τη γραμμή που αναφέρεται στο μήνυμα σφάλματος. Αυτό το πλαίσιο συχνά θα αποκαλύψει την αιτία.
* Ελέγξτε τις μεταβλητές τιμές: Χρησιμοποιήστε ένα πρόγραμμα εντοπισμού σφαλμάτων (όπως το PDB στο Python) ή τις δηλώσεις εκτύπωσης για να ελέγξετε τις τιμές των μεταβλητών σε διαφορετικά σημεία του κώδικα σας. Αυτό σας βοηθά να εντοπίσετε τη ροή των δεδομένων και να προσδιορίσετε απροσδόκητες τιμές.
* Δοκιμάστε τις εισόδους σας: Εάν το πρόγραμμά σας λαμβάνει την είσοδο του χρήστη, βεβαιωθείτε ότι η είσοδος είναι έγκυρη και του αναμενόμενου τύπου.
* χειριστείτε πιθανά σφάλματα: Χρησιμοποιήστε `δοκιμάστε ... εκτός από 'μπλοκ (σε γλώσσες όπως η Python) για να χειριστείτε με χαρά τις εξαιρέσεις. Αυτό εμποδίζει το πρόγραμμά σας να συντρίψει και σας επιτρέπει να λάβετε τα κατάλληλα μέτρα (π.χ. εμφανίστε ένα φιλικό προς το χρήστη μηνύματα, καταγράφετε το σφάλμα ή επιχειρήστε μια ανάκτηση).
* Απλοποιήστε τον κωδικό σας: Εάν ο κώδικας είναι πολύπλοκος, δοκιμάστε να τον απλοποιήσετε για να απομονώσετε το πρόβλημα.
Παράδειγμα (Python):
Ας πούμε ότι έχετε αυτό το σφάλμα:
`` `
Traceback (πιο πρόσφατη κλήση τελευταίου):
Αρχείο "myprogram.py", γραμμή 10, σε
αποτέλεσμα =my_list [5]
IndexError:INDEX LIST OUT RANK
`` `
Αυτό μας λέει:
* Τύπος σφάλματος: `Indexerror '
* Τοποθεσία: `myprogram.py`, γραμμή 10
* Αιτία: Προσπαθούμε να έχουμε πρόσβαση σε ένα δείκτη που δεν υπάρχει στο `my_list`.
Η λύση θα ήταν να ελέγξετε το μήκος του `my_list` πριν από την πρόσβαση στα στοιχεία της ή να χρησιμοποιήσετε μια δοκιμή ... εκτός από το μπλοκ για να χειριστείτε το πιθανό` indexerror '.
`` `Python
my_list =[1, 2, 3, 4]
δοκιμή:
αποτέλεσμα =my_list [5] # Αυτό θα εξακολουθεί να αυξάνει ένα indexerror αν το my_list είναι πολύ σύντομο
Εκτός από το IndexError:
εκτύπωση ("Ευρετήριο εκτός εμβέλειας!")
Αποτέλεσμα =Κανένα # ή χειριστείτε τον άλλο τρόπο
εκτύπωση (αποτέλεσμα)
`` `
Συνοπτικά: Ο καθορισμός ενός σφάλματος χρόνου εκτέλεσης είναι μια διαδικασία έρευνας και εντοπισμού σφαλμάτων. Εξετάστε προσεκτικά το μήνυμα σφάλματος, κατανοήστε το νόημά του, εντοπίστε τον πηγαίο κώδικα και ελέγξτε συστηματικά τον κωδικό σας για λογικά σφάλματα, μη έγκυρες εισόδους και προβλήματα πόρων. Η χρήση ενός εντοπισμού σφαλμάτων μπορεί να επιταχύνει σημαντικά αυτή τη διαδικασία.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα