Πίνακας περιεχομένων:
- NoClassDefFoundError
- NoSuchMethodError
- Δεν είναι δυνατή η επίλυση του συμβόλου
- Αναμενόμενο "; '(Ή αναμενόμενο κάτι άλλο)
- Λείπει το σώμα της μεθόδου ή δηλώνει την αφηρημένη
- Ένα 'else' χωρίς 'if'
- Η μη στατική μεταβλητή δεν μπορεί να αναφερθεί από ένα στατικό πλαίσιο
- FileNotFoundException (Το σύστημα δεν μπορεί να βρει το καθορισμένο αρχείο) ή EOFException
Βίντεο: Week 1 2024
Μερικές φορές, τα μηνύματα σφάλματος μπορεί να χτυπήσουν τον φόβο στην καρδιά ακόμα και του πιο γενναίου προγραμματιστή. Ευτυχώς υπάρχουν κάποιες χρήσιμες, χαλαρωτικές συμβουλές εδώ - συμβουλές για να σας βοηθήσουν να λύσετε το πρόβλημα όταν βλέπετε ένα από αυτά τα μηνύματα.
NoClassDefFoundError
Εμφανίζεται αυτό το σφάλμα όταν επιχειρείτε να εκτελέσετε τον κώδικα σας. ¶Έτσι αρχικά ρωτήστε τον εαυτό σας, προσπαθήσατε να συντάξετε τον κώδικα; Εάν ναι, βλέπατε μηνύματα σφάλματος κατά τη σύνταξη; Εάν έχετε δει μηνύματα σφάλματος, αναζητήστε τα πράγματα που μπορείτε να επιδιορθώσετε. java αρχείο. Προσπαθήστε να διορθώσετε αυτά τα πράγματα και στη συνέχεια να συντάξετε το. java αρχείο ξανά.
Εάν διατηρείτε κανονικά τον κώδικα στον κατάλογο JavaPrograms, βεβαιωθείτε ότι εξακολουθείτε να εργάζεστε σε αυτόν τον κατάλογο JavaPrograms. (Στα Windows, βεβαιωθείτε ότι η γραμμή εντολών λέει JavaPrograms.)
Βεβαιωθείτε ότι έχετε ονομάσει κατάλληλα. class αρχείο στον κατάλογο εργασίας σας. Για παράδειγμα, αν προσπαθείτε να εκτελέσετε ένα πρόγραμμα που ονομάζεται MyGreatProg, αναζητήστε ένα αρχείο που ονομάζεται MyGreatProg. class στον κατάλογο εργασίας σας.
Ελέγξτε την ταξική πορεία σας για να βεβαιωθείτε ότι περιέχει το. που χρειάζεστε. Για παράδειγμα, εάν όλος ο κώδικας Java βρίσκεται στον κατάλογο εργασίας σας, βεβαιωθείτε ότι η διαδρομή ταξινόμησης περιλαμβάνει μια κουκκίδα.
NoSuchMethodError
Όταν αντιμετωπίζετε αυτό το μήνυμα σφάλματος, ελέγξτε την ορθογραφική ορθογραφία ή ασυνεπής χρήση κεφαλαίων ενός ονόματος μεθόδου. Ελέγξτε την κεφαλαιοποίηση της κύριας (όχι της κύριας).
Όταν εκδίδετε την εντολή java (ή κάνετε ό, τι κάνετε κανονικά για να εκτελέσετε ένα πρόγραμμα στο περιβάλλον σας), η κλάση που προσπαθείτε να εκτελέσετε περιέχει τη δική της κύρια μέθοδο; Αν όχι, τότε βρείτε την τάξη με την κύρια μέθοδο και τρέξτε αυτήν την κλάση.
Δεν είναι δυνατή η επίλυση του συμβόλου
Αν λάβετε ένα μήνυμα σφάλματος που δεν μπορεί να επιλύσει το σύμβολο, ελέγξτε την ορθογραφία και τη χρήση κεφαλαίων όλων των αναγνωριστικών και των λέξεων-κλειδιών. Στη συνέχεια, ελέγξτε ξανά.
Αν το ανεπίλυτο σύμβολο είναι μια μεταβλητή, βεβαιωθείτε ότι η δήλωση αυτής της μεταβλητής βρίσκεται στη σωστή θέση. Για παράδειγμα, αν η μεταβλητή δηλωθεί στην αρχικοποίηση ενός βρόχου, προσπαθείτε να χρησιμοποιήσετε αυτήν τη μεταβλητή έξω από το for loop; Εάν η μεταβλητή δηλώνεται μέσα σε ένα μπλοκ (ένα ζευγάρι σγουρά), προσπαθείτε να χρησιμοποιήσετε αυτήν τη μεταβλητή εκτός του μπλοκ;
Τέλος, ψάξτε για σφάλματα στη δήλωση της μεταβλητής. Εάν ο μεταγλωττιστής εντοπίσει σφάλματα στη δήλωση μεταβλητής, τότε ο μεταγλωττιστής δεν μπορεί να επιλύσει αυτό το όνομα μεταβλητής στο υπόλοιπο του κώδικα.
Αναμενόμενο "; '(Ή αναμενόμενο κάτι άλλο)
Όταν βλέπετε ένα μήνυμα σφάλματος που λέει'; 'αναμένεται, περάστε από τον κωδικό σας και βεβαιωθείτε ότι κάθε δήλωση και κάθε δήλωση λήγει με ένα ερωτηματικό.Εάν ναι, ίσως η εικασία του μεταγλωττιστή για ένα κενό ερωτηματικό είναι λανθασμένη. Η επίλυση ενός άλλου (φαινομενικά άσχετου) σφάλματος και η ανασυγκρότηση του κώδικα μπορεί να ξεφορτωθεί ένα ψεύτικο ». αναμενόμενο μήνυμα.
Για μια κενή παρένθεση, ελέγξτε τις συνθήκες αν οι δηλώσεις και οι βρόχοι. Βεβαιωθείτε ότι κάθε προϋπόθεση περικλείεται σε παρενθέσεις. Επίσης, βεβαιωθείτε ότι μια λίστα παραμέτρων (που περικλείεται σε παρένθεση) ακολουθεί το όνομα κάθε μεθόδου.
Για αναμενόμενο μήνυμα, ελέγξτε τις δηλώσεις αποστολής. Βεβαιωθείτε ότι κάθε εντολή εκχώρησης είναι μέσα σε μια μέθοδο. (Να θυμάστε ότι μια δήλωση με μια αρχικοποίηση μπορεί να είναι εκτός μιας μεθόδου, αλλά κάθε απλή παλιά εντολή εκχώρησης πρέπει να είναι μέσα σε μια μέθοδο.)
Για το αναμενόμενο μήνυμα 'class' ή 'interface', βεβαιωθείτε ότι έχετε γράψει το λέξη σωστά. Εάν ο κωδικός σας έχει μια δήλωση εισαγωγής, ελέγξτε την ορθογραφία και τη χρήση κεφαλαίων της εισαγωγής λέξεων.
Λείπει το σώμα της μεθόδου ή δηλώνει την αφηρημένη
Λαμβάνετε ένα σώμα που λείπει από τη μέθοδο ή δηλώνετε αφηρημένο μήνυμα όταν ο μεταγλωττιστής βλέπει μια κεφαλίδα μεθόδου, αλλά ο μεταγλωττιστής δεν μπορεί να βρει το σώμα της μεθόδου. Κοιτάξτε το τέλος της κεφαλίδας της μεθόδου. Εάν ολοκληρώσατε την κεφαλίδα με ένα ερωτηματικό, δοκιμάστε να αφαιρέσετε το ερωτηματικό.
Αν η κεφαλίδα δεν τελειώνει με ερωτηματικό, τότε ελέγξτε τον κώδικα αμέσως μετά την κεφαλίδα. Ο κώδικας που ακολουθεί αμέσως την κεφαλίδα πρέπει να ξεκινά με ένα ανοιχτό σγουρό στήριγμα (αρχή ενός σώματος μεθόδου). Αν κάποιος κώδικας έρχεται ανάμεσα στην κεφαλίδα και το ανοιχτό σγουρό κορμό του σώματος, σκεφτείτε να μετακινήσετε αυτόν τον κώδικα κάπου αλλού.
Ένα 'else' χωρίς 'if'
Συγκρίνετε τον αριθμό των ρήτρων if με τον αριθμό των άλλων ρητρών. Μια ρήτρα if δεν χρειάζεται να έχει άλλη ρήτρα, αλλά κάθε άλλη ρήτρα πρέπει να ανήκει σε ρήτρα if.
Να θυμάστε ότι πληκτρολογείτε μια προϋπόθεση if σε παρενθέσεις, αλλά δεν έχετε τοποθετήσει ένα ερωτηματικό μετά την προϋπόθεση. Μήπως εσφαλμένα καταλήξατε σε μια προϋπόθεση if με ένα ερωτηματικό;
Κοιτάξτε όλες τις γραμμές μεταξύ ενός if και του άλλου. Όταν βρείτε περισσότερες από μία δηλώσεις μεταξύ ενός if και του άλλου, ψάξτε για σγουρά. Αν οι δηλώσεις μεταξύ του if και του άλλου δεν περιβάλλουν τα σγουρά, μπορεί να έχετε βρει τον ένοχο.
Η μη στατική μεταβλητή δεν μπορεί να αναφερθεί από ένα στατικό πλαίσιο
Πολλά πράγματα μπορούν να σας δώσουν μια μη στατική μεταβλητή δεν μπορούν να αναφέρονται από ένα μήνυμα σφάλματος στατικού περιβάλλοντος. Αλλά για αρχάριους προγραμματιστές, η πιο συνηθισμένη αιτία είναι μια μεταβλητή που δηλώνεται έξω από την κύρια μέθοδο. Δεν είναι αμαρτία να δηλώσετε μια τέτοια μεταβλητή, αλλά επειδή η κύρια μέθοδος είναι πάντα στατική, χρειάζεστε κάποια ειδική βοήθεια για να κάνετε την κύρια μέθοδο αναφορά σε μια μεταβλητή που δηλώνεται εκτός της κύριας μεθόδου.
Η πιο γρήγορη λύση είναι να τοποθετήσετε τη λέξη στατική μπροστά από τη δήλωση της μεταβλητής. Αλλά πρώτα, αναρωτηθείτε γιατί αυτή η δήλωση της μεταβλητής δεν είναι μέσα στην κύρια μέθοδο. Εάν δεν υπάρχει κανένας καλός λόγος, μετακινήστε τη δήλωση της μεταβλητής έτσι ώστε να βρίσκεται μέσα στην κύρια μέθοδο.
FileNotFoundException (Το σύστημα δεν μπορεί να βρει το καθορισμένο αρχείο) ή EOFException
Αν αντιμετωπίσετε κάποιο μήνυμα FileNotFoundException, βεβαιωθείτε ότι το αρχείο που υπάρχει στον κώδικα σας υπάρχει.(Αναζητήστε το αρχείο χρησιμοποιώντας τον εξερευνητή του συστήματός σας ή χρησιμοποιώντας το παράθυρο της γραμμής εντολών.) Ελέγξτε ξανά την ορθογραφία του κώδικα σας σε σχέση με το όνομα του αρχείου στο σκληρό σας δίσκο.
Εάν έχετε βρει ένα σωστά κατονομαζόμενο αρχείο στον σκληρό σας δίσκο, βεβαιωθείτε ότι το αρχείο βρίσκεται στον σωστό κατάλογο. (Για ένα πρόγραμμα που εκτελείται στον κατάλογο εργασίας σας, ένα τυπικό αρχείο δεδομένων βρίσκεται επίσης στον κατάλογο εργασίας.)
Αν είστε χρήστης των Windows, βεβαιωθείτε ότι το σύστημα δεν πρόσθεσε επιπλέον. txt κατά τη δημιουργία του αρχείου. (Χρησιμοποιήστε το παράθυρο της γραμμής εντολών για να ελέγξετε το όνομα του αρχείου. Η Εξερεύνηση των Windows μπορεί να κρύψει την επέκταση.txt και αυτό πάντα οδηγεί σε σύγχυση.)
Για EOFException, πιθανότατα προσπαθείτε να διαβάσετε περισσότερα δεδομένα από αυτά που έχετε στην αρχείο. Πολύ συχνά, ένα μικρό λογικό σφάλμα κάνει το πρόγραμμά σας να το κάνει αυτό. Ακολουθήστε προσεκτικά όλα τα βήματα εκτέλεσης του προγράμματος. Ψάξτε για τα λεπτά πράγματα, όπως οι ακατάλληλα βρόγχοι ή η ανάγνωση των τιμών των συστοιχιών πέρα από το μεγαλύτερο δείκτη του πίνακα. Αναζητήστε συνθήκες που χρησιμοποιούν