java:exception_categories

Κατηγορίες Εξαιρέσεων

Η Java διακρίνει τις παρακάτω τρεις διαφορετικές κατηγορίες εξαιρέσεων.

  • Checked Exceptions: Σε αυτή την κατηγορίες ανήκουν όλες οι εξαιρέσεις για τις οποίες ένα πρόγραμμα θα περιμέναμε να συνεχίσει κανονικά την λειτουργία του, αφού αυτές συμβούν. Για παράδειγμα, εάν προσπαθήσουμε να ανοίξουμε ένα αρχείο που δεν υπάρχει στον δίσκο τότε μία εξαίρεση του τύπου FileNotFoundException θα πρέπει να παραχθεί. Η εξαίρεση αυτή δεν σηματοδοτεί και το τέλος του προγράμματος, αντιθέτως ένα καλά γραμμένο πρόγραμμα θα πρέπει να ειδοποιήσει τον χρήστη του ότι δεν βρέθηκε το αρχείο προκειμένου να επιλέξει ένα άλλο αρχείο. Ο compiler της Java απαιτεί την διαχείριση των εξαιρέσεων αυτής της κατηγορίας. Οι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης java.lang.Exception.
  • Errors: Στην κατηγορία αυτή ανήκουν εξαιρέσεις που συμβαίνουν για λόγους που δεν εξαρτώνται από το πρόγραμμα. Για παράδειγμα αφού ανοίξετε ένα αρχείο για διάβασμα κάποιος τραβάει το flash drive από το οποίο διαβάζατε. Σε αυτή την περίπτωση παράγεται ένα IOError ( και το πρόγραμμα σας είναι αδύνατον να συνεχίσει την λειτουργία του. Ο compiler της Java ΔΕΝ απαιτεί την διαχείριση αυτών των εξαιρέσεων. Oι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης java.lang.Error.
  • Runtime Exceptions: Σε αυτή την κατηγορία ανήκουν οι εξαιρέσεις που είναι κατά κανόνα αποτέλεσμα φτωχών προγραμματιστικών πρακτικών. Για παράδειγμα, εάν προσπαθώντας να ανοίξετε ένα αρχείο περάσετε στον κατασκευαστή της κλάσης FileReader την τιμή null, τότε θα παραχθεί μία εξαίρεση του τύπου NullPointerException. Μπορείτε να διαχειριστείτε τέτοιες εξαιρέσεις αν και μάλλον είναι προτιμότερο να προσπαθήσετε να εντοπίσετε το προγραμματιστικό λάθος. Ο compiler της Java ΔΕΝ απαιτεί την διαχείριση αυτών των εξαιρέσεων. Oι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης java.lang.RuntimeException

Δημιουργώντας μία εξαίρεση

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

java/exception_categories.txt · Last modified: 2018/03/30 06:10 by doufexi