Διαφορά μεταξύ σφάλματος και εξαίρεσης στην Java

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 2 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 6 Ενδέχεται 2024
Anonim
Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα
Βίντεο: Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα

Περιεχόμενο


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

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΛάθοςΕξαίρεση
ΒασικόςΠαρουσιάζεται σφάλμα λόγω έλλειψης πόρων συστήματος.Μια εξαίρεση προκαλείται εξαιτίας του κώδικα.
ΑνάκτησηΈνα σφάλμα είναι ανεπανόρθωτο.Μια εξαίρεση είναι ανακτήσιμη.
Λέξεις κλειδιάΔεν υπάρχει κανένας τρόπος αντιμετώπισης σφάλματος από τον κώδικα του προγράμματος.Οι εξαιρέσεις αντιμετωπίζονται χρησιμοποιώντας τρεις λέξεις-κλειδιά "δοκιμάστε", "πιάστε" και "ρίξτε".
Συνέπειες
Καθώς εντοπίζεται το σφάλμα, το πρόγραμμα τερματίζεται ασυνήθιστα.Κατ 'εξαίρεση ανιχνεύεται, ρίχνεται και αλιεύεται από τις λέξεις-κλειδιά "throw" και "catch" αντιστοίχως.
Τύποι Τα σφάλματα ταξινομούνται ως μη ελεγμένος τύπος.Οι εξαιρέσεις ταξινομούνται ως ελεγχόμενοι ή ανεξέλεγκτοι τύποι.
Πακέτο Στην Java, τα σφάλματα ορίζονται ως πακέτο "java.lang.Error".Στην Java, οι εξαιρέσεις ορίζονται στο "java.lang.Exception".
ΠαράδειγμαOutOfMemory, StackOverFlow.Έλεγχος εξαιρέσεων: NoSuchMethod, ClassNotFound.
Μη ελεγμένες εξαιρέσεις: NullPointer, IndexOutOfBounds.


Ορισμός του σφάλματος

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

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


Ορισμός εξαίρεσης

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

δοκιμάστε {// γράψτε τον κωδικό σας εδώ} Catch (τύπος εξαίρεσης) {// γράψτε τον κωδικό σας εδώ}

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

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

  1. Παρουσιάζεται σφάλμα μόνο όταν οι πόροι του συστήματος είναι ανεπαρκείς, ενώ μια εξαίρεση προκαλείται αν κάποιο πρόβλημα έχει κάποιο πρόβλημα.
  2. Ένα σφάλμα δεν μπορεί ποτέ να ανακτηθεί, ενώ μια εξαίρεση μπορεί να ανακτηθεί με την προετοιμασία του κώδικα για την αντιμετώπιση της εξαίρεσης.
  3. Ένα σφάλμα δεν μπορεί ποτέ να αντιμετωπιστεί, αλλά μια εξαίρεση μπορεί να αντιμετωπιστεί από τον κώδικα εάν ο κώδικας που πετάει μια εξαίρεση γράφεται μέσα σε ένα δοκιμαστικό και μπλοκ αλίευσης.
  4. Εάν παρουσιαστεί κάποιο σφάλμα, το πρόγραμμα τερματίζεται μη φυσιολογικά. Από την άλλη πλευρά, αν υπάρξει εξαίρεση, το πρόγραμμα θα ρίξει μια εξαίρεση και θα χειριστεί χρησιμοποιώντας το μπλοκ δοκιμής και αλίευσης.
  5. Τα σφάλματα είναι ανεξέλεγκτου τύπου, δηλ. Το σφάλμα δεν είναι γνωστό στους μεταγλωτιστές, ενώ μια εξαίρεση ταξινομείται ως ελεγμένη και ανεξέλεγκτη.
  6. Τα σφάλματα ορίζονται στο πακέτο java.lang.Error, ενώ η εξαίρεση ορίζεται ως java.lang.Exception.

Συμπέρασμα:

Εξαιρέσεις είναι τα αποτελέσματα των σφαλμάτων που έγιναν κατά την κωδικοποίηση του προγράμματος και τα σφάλματα είναι αποτέλεσμα της ακατάλληλης λειτουργίας του συστήματος