Σπίτι Προσωπικά Οικονομικά Προγραμματισμός Java: Όταν παρουσιάζονται σφάλματα - σφάλματα

Προγραμματισμός Java: Όταν παρουσιάζονται σφάλματα - σφάλματα

Πίνακας περιεχομένων:

Βίντεο: Section: Debugging with Dan Armendariz 2024

Βίντεο: Section: Debugging with Dan Armendariz 2024
Anonim

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

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

Ο μεταγλωττιστής μετατρέπει τον κώδικα εφαρμογής σας σε κώδικα byte Java. Κατά τη διάρκεια αυτής της διαδικασίας, παίρνει τον κώδικα αναγνώσιμο από τον άνθρωπο που γράφετε και το μετατρέπει σε κάτι που το Java Runtime Environment (JRE) κατανοεί.

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

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

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

Για να εξασφαλιστεί ότι όλοι καταλαβαίνουν με ακρίβεια πώς πρέπει να λειτουργήσει η γλώσσα Java, οι προγραμματιστές δημιουργούν μια προδιαγραφή για αυτό. Αυτή η προδιαγραφή περιλαμβάνει τα γλωσσικά στοιχεία σε μια ειδική γλώσσα που ονομάζεται Backus-Naur Form (BNF). Η χρήση του BNF είναι μια εξαιρετικά ακριβής μέθοδος περιγραφής μιας γλώσσας, ώστε να μην υπάρχει κίνδυνος παρερμηνείας από κανέναν.

Μπορείτε να δείτε ένα δείγμα του BNF για τη γλώσσα Java στο Τμήμα Επιστήμης Υπολογιστών - Daimi. Μην ανησυχείτε πάρα πολύ για να μπορείτε να διαβάσετε αυτές τις προδιαγραφές. Οι περισσότεροι προγραμματιστές ποτέ δεν μαθαίνουν να ερμηνεύουν το BNF για τις γλώσσες που χρησιμοποιούν - αυτός είναι ο τομέας των προγραμματιστών των μεταγλωττιστών.

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

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

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

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

- αυτά τα σφάλματα που συμβαίνουν σε κάποιο σημείο κατά την εκτέλεση της εφαρμογής. Τα σφάλματα χρόνου εκτέλεσης μπορούν να εμφανιστούν σε όλες τις φορές. Ορισμένα σφάλματα είναι πιθανότερο να εμφανιστούν σε συγκεκριμένες ώρες. Η παρακάτω λίστα σάς παρέχει μερικές ιδέες σχετικά με το πότε είναι πιθανό να εμφανιστούν σφάλματα χρόνου εκτέλεσης: Initialization:

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

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

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

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

  • Για παράδειγμα, η εκτύπωση ενός εγγράφου ή η λήψη πόρων από το Internet εκτελούνται συνήθως στο παρασκήνιο, ενώ ο χρήστης συνεχίζει να εργάζεται με την εφαρμογή στο προσκήνιο. Τερματισμός:

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

  • Τα πιο συνηθισμένα σφάλματα που μπορεί να προκύψουν κατά τη διάρκεια αυτής της φάσης δεν απελευθερώνουν πόρους που έχει χρησιμοποιήσει η εφαρμογή σας και δεν αποθηκεύουν δεδομένα στο δίσκο. Φυσικά, τα σφάλματα κωδικοποίησης μπορούν να εμφανιστούν ανά πάσα στιγμή και αυτή η φάση λειτουργίας δεν αποτελεί εξαίρεση. Θα μπορούσατε να πείτε την αίτηση να κλείσει πέντε αρχεία όταν μόνο τέσσερις είναι πραγματικά ανοιχτά. Το JRE θα παρουσιάσει τα περισσότερα σφάλματα χρόνου εκτέλεσης που σας ανιχνεύει ως εξαιρέσεις. Ωστόσο, το JRE δεν θα εντοπίσει κάθε λάθος στην αίτησή σας.Πρέπει επίσης να εξετάσετε την έξοδο της αίτησής σας για να προσδιορίσετε αν η έξοδος ταιριάζει με τις προσδοκίες που έχετε για μια δεδομένη είσοδο.

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

Η Java 8 δίνει μεγαλύτερη έμφαση στην ασφάλεια, πράγμα που σημαίνει ότι θα δείτε περισσότερες περιπτώσεις SecurityException καθώς εργάζεστε με την εφαρμογή σας.

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

Η τεκμηρίωση SecurityException εμφανίζεται στην Java. καθαρά. Φυσικά, θα θελήσετε να μάθετε τι είναι το πλήθος των hubbub.

Προγραμματισμός Java: Όταν παρουσιάζονται σφάλματα - σφάλματα

Η επιλογή των συντακτών

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Microsoft SharePoint Workspace είναι ο καλλιτέχνης παλαιότερα γνωστός ως Microsoft Office Groove desktop εφαρμογή προσαρμοσμένη για άτομα που θέλουν να συνεργάζονται σε έγγραφα online και offline. Προσφέρεται μαζί με το Office 2010 και παρέχει μια διεπαφή χρήστη παρόμοια με την Εξερεύνηση των Windows για προβολή και επεξεργασία αρχείων και λιστών από μια τοποθεσία του SharePoint. SharePoint Workspace ...

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Το Site δημοσίευσης του sharePoint 2010 παρέχει μια πλούσια εμπειρία επεξεργασίας καθιστά εύκολο για ένα μη τεχνικό πρόσωπο να δημιουργήσει ιστοσελίδες. Η προσθήκη του περιεχομένου σας στη σελίδα είναι γρήγορη. Το SharePoint παρέχει πολλά είδη δοχείων περιεχομένου που μπορείτε να χρησιμοποιήσετε κατά τη δημιουργία της σελίδας σας, συμπεριλαμβανομένων των πλαισίων κειμένου μιας γραμμής για την εισαγωγή μιας απλής γραμμής κειμένου ...

Για ιστότοπους SharePoint Online - dummies

Για ιστότοπους SharePoint Online - dummies

Μπορείτε να δημιουργήσετε και να αναπτύξετε τρεις κύριους τύπους σελίδων του SharePoint όχι λιγότερο!) - το καθένα με ξεχωριστή λειτουργία: περιεχόμενο, τμήματα Web και εκδόσεις σελίδων. Σελίδα περιεχομένου: Επίσης γνωστή ως σελίδα wiki, αυτό είναι το μαχαίρι ελβετικού στρατού των σελίδων του SharePoint. Μια σελίδα περιεχομένου παρέχει όχι μόνο μια θέση ...

Η επιλογή των συντακτών

Τι είναι ένας χάρτης Java; - ανδρείκελα

Τι είναι ένας χάρτης Java; - ανδρείκελα

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

Λίγα περίεργα πράγματα για το Java Math - dummies

Λίγα περίεργα πράγματα για το Java Math - dummies

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

Η επιλογή των συντακτών

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Από τα τρία νέα φίλτρα Blur στο Photoshop CS6, θα έχετε επίσης πρόσβαση σε δύο σχετικούς πίνακες ελέγχου, Εργαλεία θόλωσης και Εφέ θόλωσης, τα οποία περιέχουν τις επιλογές σας. Και τα τρία φίλτρα σας επιτρέπουν να δημιουργήσετε ειδικά εφέ. Blur πεδίου: Δημιουργεί μια συνολική θόλωση στην εικόνα σας. Με την προσθήκη πρόσθετων σημείων ελέγχου ή καρφίτσες, ...

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

, αυτόνομο πλαίσιο Μάσκες στο Photoshop CS6 προς όφελος του πίνακα Ιδιότητες, ο οποίος περιλαμβάνει τώρα τις δυνατότητες των πλαισίων Μάσκες και Προσαρμογές. Δεν υπάρχουν όμως ανησυχίες. Κανένα από τα χαρακτηριστικά που παρείχε προηγουμένως ο πίνακας "Μάσκες" χάθηκε. Ο νέος πίνακας Ιδιότητες σάς δίνει τη δυνατότητα να προσθέσετε, να επεξεργαστείτε και να διαχειριστείτε το στρώμα σας, ...

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

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