Εξαίρεση χειρισμού στο JSP
⚡ Έξυπνη Σύνοψη
Ο Χειρισμός Εξαιρέσεων σε JSP διαχειρίζεται σφάλματα που προκύπτουν κατά την εκτέλεση κώδικα, παρόμοια με Java μπλοκ try-catch. Οι εξαιρέσεις εμπίπτουν σε τρεις τύπους: ελεγμένα, χρόνου εκτέλεσης και σφάλματος. Οι σελίδες JSP χρησιμοποιούν τα χαρακτηριστικά errorPage και isErrorPage για την ανακατεύθυνση και την εμφάνιση εξαιρέσεων.

Τι είναι η Εξαίρεση στο JSP;
εξαιρέσεις στο JSP εμφανίζονται όταν υπάρχει σφάλμα στον κώδικα είτε από τον προγραμματιστή είτε εσωτερικό σφάλμα από το σύστημα. Ο χειρισμός εξαιρέσεων στο JSP είναι ο ίδιος όπως στο Java όπου διαχειριζόμαστε εξαιρέσεις χρησιμοποιώντας μπλοκ Try Catch. Διαφορετικός Java, υπάρχουν εξαιρέσεις στο JSP και όταν δεν υπάρχει σφάλμα στον κώδικα.
Τύποι εξαιρέσεων στο JSP
Οι εξαιρέσεις στο JSP είναι τριών τύπων:
- Επιλεγμένη Εξαίρεση
- Εξαίρεση χρόνου εκτέλεσης
- Εξαίρεση σφάλματος
Επιλεγμένες Εξαιρέσεις
Συνήθως πρόκειται για σφάλμα χρήστη ή προβλήματα που δεν φαίνονται από τον προγραμματιστή ονομάζονται ελεγμένες εξαιρέσεις. Μερικά παραδείγματα εξαιρέσεων που έχουν επιλεγεί είναι:
- FileNotFoundException: Αυτή είναι μια επιλεγμένη εξαίρεση (όπου προσπαθεί να βρει ένα αρχείο όταν το αρχείο δεν βρίσκεται στο δίσκο).
- IO Εξαίρεση: Αυτή είναι επίσης επιλεγμένη εξαίρεση εάν υπάρχει κάποια εξαίρεση κατά την ανάγνωση ή την εγγραφή ενός αρχείου, τότε τίθεται η εξαίρεση IO.
- SQLException: Αυτή είναι επίσης μια επιλεγμένη εξαίρεση όταν το αρχείο είναι συνδεδεμένο με SQL βάσης δεδομένων και υπάρχει πρόβλημα με τη συνδεσιμότητα της βάσης δεδομένων SQL, τότε εγείρεται το SQLException
Εξαιρέσεις χρόνου εκτέλεσης
Οι εξαιρέσεις χρόνου εκτέλεσης είναι αυτές που θα μπορούσε να είχε αποφύγει ο προγραμματιστής. Αγνοούνται κατά τη στιγμή της σύνταξης. Μερικά παραδείγματα εξαίρεσης χρόνου εκτέλεσης είναι:
- ArrayIndexOutOfBoundsException: Αυτή είναι μια εξαίρεση χρόνου εκτέλεσης όταν το μέγεθος του πίνακα υπερβαίνει το στοιχεία.
- Αριθμητική Εξαίρεση: Αυτή είναι επίσης μια εξαίρεση χρόνου εκτέλεσης όταν υπάρχουν μαθηματικές πράξεις, οι οποίες δεν επιτρέπονται υπό κανονικές συνθήκες, για παράδειγμα, η διαίρεση ενός αριθμού με το 0 θα δώσει μια εξαίρεση.
- Εξαίρεση NullPointer: Αυτή είναι επίσης μια εξαίρεση χρόνου εκτέλεσης που αυξάνεται όταν μια μεταβλητή ή ένα αντικείμενο είναι μηδενικό όταν προσπαθούμε να έχουμε πρόσβαση στο ίδιο. Αυτή είναι μια πολύ συνηθισμένη εξαίρεση.
Σφάλματα:
Το πρόβλημα προκύπτει λόγω του ελέγχου του χρήστη ή του προγραμματιστή. Εάν η στοίβα υπερχειλίσει, τότε μπορεί να προκύψει σφάλμα. Μερικά παραδείγματα του σφάλματος παρατίθενται παρακάτω:
- Λάθος: Αυτό το σφάλμα είναι μια υποκατηγορία του throwable που υποδεικνύει σοβαρά προβλήματα που μια εφαρμογή δεν μπορεί να συλλάβει.
- Σφάλμα Instantiation: Αυτό το σφάλμα παρουσιάζεται όταν προσπαθούμε να δημιουργήσουμε ένα αντικείμενο και αυτό αποτυγχάνει.
- Εσωτερικό σφάλμα: Αυτό το σφάλμα παρουσιάζεται όταν παρουσιάστηκε σφάλμα από το JVM, π.χ Java Εικονική μηχανή.
Εξαιρέσεις σφαλμάτων
Είναι ένα στιγμιότυπο της κλάσης ρίχνοντας και χρησιμοποιείται σε σελίδες σφαλμάτων. Μερικές μέθοδοι κλάσης με δυνατότητα ρίψης είναι:
- Δημόσια συμβολοσειρά getMessage() – επιστρέφει το μήνυμα της εξαίρεσης.
- Δημόσιο getCause() με δυνατότητα απόρριψης – επιστρέφει την αιτία της εξαίρεσης
- Δημόσια εκτύπωσηTracμι() – επιστρέφει τη στοίβαtracε της εξαίρεσης.
Πώς να χειριστείτε την εξαίρεση στο JSP
Ακολουθεί ένα παράδειγμα του τρόπου χειρισμού της εξαίρεσης στο JSP:
Exception_example.jsp
<%@ page errorPage="guru_error.jsp" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Exception Guru JSP1</title> </head> <body> <% int num = 10; if (num == 10) { throw new RuntimeException("Error condition!!!"); } %> </body> </html>
Guru_error.jsp
<%@ page isErrorPage="true" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Exception Page</title> </head> <body> <p>Guru Exception has occurred</p> <% exception.printStackTrace(response.getWriter()); %> </body> </html>
Επεξήγηση του κώδικα:
Exception_example.jsp
Code Γραμμή 1: Εδώ ορίζουμε τη σελίδα σφάλματος σε guru_error.jsp που θα χρησιμοποιηθεί όταν το σφάλμα θα ανακατευθυνθεί.
Code Γραμμή 15: Παίρνουμε μια μεταβλητή num και την ορίζουμε στο 10 και ελέγχουμε μια συνθήκη εάν το num είναι 10, τότε ρίχνουμε μια εξαίρεση χρόνου εκτέλεσης με το μήνυμα ως Συνθήκη σφάλματος.
Guru_error.jsp
Code Γραμμή 1: Εδώ ορίζουμε την ιδιότητα isErrorPage σε true.
Code Γραμμή 12: Η εξαίρεση έχει δημιουργηθεί στο exception_example.jsp χρησιμοποιώντας το αντικείμενο throw και αυτή η εξαίρεση θα εμφανίζεται εδώ καθώς το χαρακτηριστικό IsErrorPage έχει επισημανθεί ως true. Χρησιμοποιώντας το αντικείμενο exception (αυτό είναι ένα αντικείμενο που επιτρέπει την πρόσβαση στα δεδομένα εξαίρεσης από το JSP.) προσπαθούμε να εκτυπώσουμε τη στοίβα.tracε του σφάλματος που παρουσιάστηκε στο exception_example.jsp.
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:
Παραγωγή:
Η εξαίρεση έχει ενεργοποιηθεί, η οποία δημιουργήθηκε από το exception_example.jsp χρησιμοποιώντας το αντικείμενο throw της εξαίρεσης χρόνου εκτέλεσης και λαμβάνουμε τον παραπάνω κώδικα. Επίσης, καλείται το guru_error.jsp από το οποίο Guru Παρουσιάστηκε εξαίρεση από αυτό το αρχείο.

