Τα σφάλματα προγραμματισμού είναι ελαττώματα στον τρόπο λειτουργίας των εφαρμογών. Συνήθως αναφέρονται ως "σφάλματα", εξ ου και ο όρος "εντοπισμός σφαλμάτων".

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

Δείτε τι πρέπει να γνωρίζετε για αυτούς τους τρεις τύπους σφαλμάτων προγραμματισμού και πώς μπορείτε να το προστατέψετε:

1. Σφάλματα χρόνου εκτέλεσης ή εκτέλεσης

Αυτά είναι σφάλματα που παρουσιάζονται κατά την εκτέλεση ενός προγράμματος (δηλαδή κατά το χρόνο εκτέλεσης). Ενδέχεται να προκαλέσουν τη μη εκτέλεση της εκτέλεσης ενός προγράμματος ή ακόμη και την εκτέλεση τους.

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

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

instagram viewer

Επομένως, η διαίρεση με μηδέν οδηγεί σε αριθμητική εξαίρεση στον μεταγλωττιστή Java.

2. Σφάλματα λογικής

Τα σφάλματα λογικής προκαλούνται λόγω λανθασμένης συλλογιστικής. Είναι σημαντικό να σημειωθεί ότι αυτά τα σφάλματα δεν οφείλονται απαραίτητα σε ένα «λάθος» που έχετε κάνει. Μπορεί να συμβούν επειδή δεν θεωρήσατε ένα συγκεκριμένο σενάριο εκτέλεσης.

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

Ένα ανεπανόρθωτο σφάλμα λογικής θα προκαλέσει τη διακοπή της εκτέλεσης του προγράμματος, ενώ ένα μη θανατηφόρο θα επιτρέψει τη συνέχιση της εκτέλεσης του προγράμματος, αλλά με λανθασμένα αποτελέσματα.

Ένα κοινό σφάλμα λογικής είναι ένα σφάλμα off-by-one. Αυτό συμβαίνει συνήθως όταν δηλώνεται μια κατάσταση συνέχισης βρόχου. Ας πούμε ότι θέλετε να εκτυπώσετε τους πρώτους πέντε τετραγωνικούς αριθμούς.

Σχετιζομαι με: Πιο κοινά λάθη προγραμματισμού και κωδικοποίησης

Ίσως καταλήξετε να γράψετε τον παρακάτω κώδικα στο for for loop, ο οποίος δίνει μόνο τους τέσσερις πρώτους τέτοιους αριθμούς.

για (int x = 1; x <5; x ++) {System.out.ln (x * x); }

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

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

Δείτε το παρακάτω παράδειγμα. Ελέγχει εάν ένας τυχαίος αριθμός είναι μονός ή ζυγός και στη συνέχεια εκτυπώνει μια έξοδο.

εισαγωγή java.util. Τυχαίος;
δημόσια τάξη OddEven {
Δημόσιο στατικό κενό (String [] args) {
Τυχαίος αριθμόςGenerator = νέο τυχαίο ();
int randomNumber = numberGenerator.nextInt (10);
εάν ((randomNumber% 2) == 0)
System.out.println ("Εδώ είναι ο τυχερός αριθμός σας:" + randomNumber);
System.out.println ("Ο αριθμός" + randomNumber + "που έχετε είναι ισότιμος"); // γραμμή 11
}
}

Γραμμή ειδοποίησης 11. Θα εκτελείται πάντα ανεξάρτητα από το αν ο τυχαίος αριθμός που έχετε είναι ομαλός. Αυτό φυσικά θα ήταν λογικά λάθος όταν ο αριθμός που έχετε είναι περίεργος.

Συμπεριλαμβανομένων και των δύο System.out.println δηλώσεις μεταξύ τιράντες {}, θα το είχαν αποφύγει.

Σχετιζομαι με: Βήματα ανάπτυξης λογισμικού που πρέπει να γνωρίζουν όλοι οι προγραμματιστές

Ένα άλλο λογικό σφάλμα που πρέπει να προσέξετε δεν παρέχει μια κατάσταση τερματισμού βρόχου. Αυτό θα έχει ως αποτέλεσμα έναν άπειρο βρόχο και το πρόγραμμά σας δεν θα ολοκληρώσει ποτέ την εκτέλεση.

3. Σφάλματα σύνταξης ή χρόνου μεταγλώττισης

Αυτά είναι σφάλματα που οφείλονται σε παραβιάσεις των γλωσσικών κανόνων της Java. Ονομάζονται επίσης σφάλματα συλλογής ή μεταγλώττισης.

Αυτά είναι τα πιο εύκολα λάθη που χειρίζονται, επειδή ο μεταγλωττιστής σας θα τα αναφέρει πάντα. Πολλοί μεταγλωττιστές προχωρούν ακόμη και να σας πουν τη γραμμή στον κώδικά σας για το σφάλμα.

Ανοχή σε σφάλματα

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

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

Η σύνταξη είναι:

δοκιμάστε {// Αποκλεισμός για εκτέλεση εάν δεν υπάρχουν προβλήματα} 
αλίευση (Εξαίρεση ε) {
// Αποκλεισμός για τον χειρισμό ζητημάτων που βρέθηκαν
} επιτέλους {// Αποκλεισμός για εκτέλεση μετά τη σύλληψη
}

Δείτε το παρακάτω παράδειγμα κώδικα:

εισαγωγή java.util. Τυχαίος;
τυχαίοι αριθμοί δημόσιας τάξης {
Δημόσιο στατικό κενό (String [] args) {
Τυχαίος αριθμόςGenerator = νέο τυχαίο ();
δοκιμάστε{
για (int μετρητής = 10; μετρητής <= 100; μετρητής ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (μετρητής / randomNumber); } }
αλίευση (Εξαίρεση ε) {
System.out.println ("Παρουσιάστηκε διαίρεση με μηδέν!");
}
τελικά{
System.out.println ("Άπειρη τιμή πήρε");}
}
}

Το παραπάνω πρόγραμμα δημιουργεί έναν τυχαίο αριθμό μεταξύ μηδέν και 10 και στη συνέχεια χρησιμοποιεί αυτόν τον αριθμό για να διαιρέσει μια τιμή μετρητή μεταξύ 10 και 100. Εάν συναντηθεί διαίρεση με μηδέν, το σύστημα εντοπίζει το σφάλμα και εμφανίζει ένα μήνυμα.

Γίνετε καλύτεροι στην κωδικοποίηση

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

Με καλές πρακτικές κωδικοποίησης, θα πρέπει να μπορείτε να αποφεύγετε κοινά λάθη προγραμματισμού.

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Τι είναι η κωδικοποίηση και πώς λειτουργεί;

Έχετε μπερδευτεί με την κωδικοποίηση; Δεν καταλαβαίνετε το σενάριο; Να τι πρέπει να γνωρίζετε για τα δομικά στοιχεία του προγραμματισμού.

Διαβάστε Επόμενο

Σχετικά θέματα
  • Προγραμματισμός
  • Ιάβα
  • Συμβουλές κωδικοποίησης
Σχετικά με τον Συγγραφέα
Τζέρομ Ντέιβιντσον (Δημοσιεύθηκαν 14 άρθρα)

Ο Jerome είναι συγγραφέας προσωπικού στο MakeUseOf. Καλύπτει άρθρα σχετικά με τον προγραμματισμό και το Linux. Είναι επίσης λάτρης της κρυπτογράφησης και παρακολουθεί πάντα τη βιομηχανία κρυπτογράφησης

Περισσότερα από τον Jerome Davidson

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.