java:exception_categories

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Κατηγορίες Εξαιρέσεων ====== Η Java διακρίνει τις παρακάτω τρεις διαφορετικές κατηγορίες εξαιρέσεων. * **Checked Exceptions:** Σε αυτή την κατηγορίες ανήκουν όλες οι εξαιρέσεις για τις οποίες ένα πρόγραμμα θα περιμέναμε να συνεχίσει κανονικά την λειτουργία του, αφού αυτές συμβούν. Για παράδειγμα, εάν προσπαθήσουμε να ανοίξουμε ένα αρχείο που δεν υπάρχει στον δίσκο τότε μία εξαίρεση του τύπου //FileNotFoundException// θα πρέπει να παραχθεί. Η εξαίρεση αυτή δεν σηματοδοτεί και το τέλος του προγράμματος, αντιθέτως ένα καλά γραμμένο πρόγραμμα θα πρέπει να ειδοποιήσει τον χρήστη του ότι δεν βρέθηκε το αρχείο προκειμένου να επιλέξει ένα άλλο αρχείο. Ο compiler της Java απαιτεί την διαχείριση των εξαιρέσεων αυτής της κατηγορίας. Οι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html|java.lang.Exception]]. * **Errors:** Στην κατηγορία αυτή ανήκουν εξαιρέσεις που συμβαίνουν για λόγους που δεν εξαρτώνται από το πρόγραμμα. Για παράδειγμα αφού ανοίξετε ένα αρχείο για διάβασμα κάποιος τραβάει το flash drive από το οποίο διαβάζατε. Σε αυτή την περίπτωση παράγεται ένα //IOError// ( και το πρόγραμμα σας είναι αδύνατον να συνεχίσει την λειτουργία του. Ο compiler της Java ΔΕΝ απαιτεί την διαχείριση αυτών των εξαιρέσεων. Oι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Error.html|java.lang.Error]]. * **Runtime Exceptions:** Σε αυτή την κατηγορία ανήκουν οι εξαιρέσεις που είναι κατά κανόνα αποτέλεσμα φτωχών προγραμματιστικών πρακτικών. Για παράδειγμα, εάν προσπαθώντας να ανοίξετε ένα αρχείο δώσετε για διάβασμα περάσετε στον κατασκευαστή της κλάσης FileReader την τιμή **null**, τότε θα παραχθεί μία εξαίρεση του τύπου //NullPointerException//. Μπορείτε να διαχειριστείτε τέτοιες εξαιρέσεις αν και μάλλον είναι προτιμότερο να προσπαθήσετε να εντοπίσετε το προγραμματιστικό λάθος. Ο compiler της Java ΔΕΝ απαιτεί την διαχείριση αυτών των εξαιρέσεων. Oι εξαιρέσεις αυτή της κατηγορίας είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html|java.lang.RuntimeException]] ===== Δημιουργώντας μία εξαίρεση ===== Στις περιπτώσεις που θέλετε να δημιουργήσετε ένα αντικείμενο εξαίρεσης στο πρόγραμμα σας το ερώτημα είναι σε ποια από τις τρεις παραπάνω κατηγορίες θα πρέπει να ανήκει η συγκεκριμένη εξαίρεση. Εάν περιμένετε το πρόγραμμα να συνεχίσει την λειτουργία του μετά την συγκεκριμένη εξαίρεση τότε δημιουργήστε μία εξαίρεση του τύπου //**Checked Exception**//. Αντίθετα, εάν περιμένετε το πρόγραμμα να μην συνεχίσει την λειτουργία του τότε δημιουργήστε μία εξαίρεση του τύπου //**RuntimeException**//. |Προηγούμενο: [[:java:exceptions_try_with_resources | try-with-resources block ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[:java:class_file | Αρχεία - Η κλάση File ]]|

java/exception_categories.1493375050.txt.gz · Last modified: 2017/04/28 10:24 by gthanos