Εξετάστε το ακόλουθο τμήμα του Ιάβα κωδικό, αποθηκευμένο σε ένα αρχείο που ονομάζεται JollyMessage.java:
// Γράφει στην οθόνη ένα χαρούμενο μήνυμα!
class Jollymessage
{
δημόσιο static κενό main (String [] args) {
// Γράψτε το μήνυμα στο παράθυρο του τερματικού
System.out.println ("Ho Ho Ho!").
}
}
Κατά την εκτέλεση του προγράμματος, αυτός ο κώδικας θα δημιουργήσει ένα μήνυμα σφάλματος χρόνου εκτέλεσης. Με άλλα λόγια, ένα λάθος έχει γίνει κάπου, αλλά το σφάλμα δεν θα εντοπιστεί όταν το πρόγραμμα είναι καταρτίζονται, μόνο όταν είναι τρέξιμο.
Debugging
Στο παραπάνω παράδειγμα, παρατηρήστε ότι η κλάση ονομάζεται "Jollymessage" ενώ καλείται το όνομα αρχείου JollyMessage.java.
Η Java διακρίνει την πεζά. Ο μεταγλωττιστής δεν θα διαμαρτυρηθεί επειδή τεχνικά δεν υπάρχει τίποτα λάθος με τον κώδικα. Δημιουργεί ένα αρχείο κλάσης που αντιστοιχεί ακριβώς στο όνομα της κλάσης (δηλ. Jollymessage.class). Όταν εκτελείτε το πρόγραμμα που ονομάζεται JollyMessage, θα λάβετε ένα μήνυμα σφάλματος επειδή δεν υπάρχει αρχείο που ονομάζεται JollyMessage.class.
Το σφάλμα που λαμβάνετε όταν εκτελείτε ένα πρόγραμμα με λάθος όνομα είναι:
Εξαίρεση στο νήμα "main" java.lang. NoClassDefFoundError: JollyMessage (λάθος όνομα: JollyMessage)..
Κοινές λύσεις χρόνου εκτέλεσης-σφάλματος
Αν το πρόγραμμα σας ολοκληρώνεται με επιτυχία, αλλά αποτυγχάνει κατά την εκτέλεση, ελέγξτε τον κωδικό σας για τα συνηθισμένα λάθη:
- Ακατάλληλα μεμονωμένα και διπλά εισαγωγικά
- Λείπει εισαγωγικά για χορδές
- Λανθασμένοι χειριστές σύγκρισης (π.χ., μη χρήση διπλών ίσων σημείων για την ένδειξη της εκχώρησης)
- Αναφορά αντικειμένων που δεν υπάρχουν ή δεν υπάρχουν με τη χρήση κεφαλαίων που παρέχονται στον κώδικα
- Αναφορά ενός αντικειμένου που δεν έχει ιδιότητες
Η εργασία μέσα στα ολοκληρωμένα περιβάλλοντα ανάπτυξης, όπως το Eclipse, μπορεί να σας βοηθήσει να αποφύγετε τυπογραφικά σφάλματα.
Για να διορθώσετε τα παραγόμενα προγράμματα Java, εκτελέστε το πρόγραμμα εντοπισμού σφαλμάτων του προγράμματος περιήγησης στο Web - θα πρέπει να δείτε ένα δεκαεξαδικό μήνυμα σφάλματος που μπορεί να βοηθήσει στην απομόνωση της συγκεκριμένης αιτίας του προβλήματος.
Σε ορισμένες περιπτώσεις, το πρόβλημα μπορεί να μην ανήκει στον κώδικα σας, αλλά στην Java Virtual Machine σας. Εάν η JVM πνίγει, μπορεί να προκαλέσει ένα σφάλμα χρόνου εκτέλεσης παρά την έλλειψη ανεπάρκειας στον κώδικα βάσης του προγράμματος. Ένα μήνυμα εντοπισμού σφαλμάτων του προγράμματος περιήγησης θα βοηθήσει στην απομόνωση των κωδικών που προκλήθηκαν από σφάλματα που προκλήθηκαν από το JVM.