Εξαίρεση χειρισμού στο JSP

⚡ Έξυπνη Σύνοψη

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

  • ⚠️ Ορισμός εξαίρεσης: Ένα σφάλμα κατά την εκτέλεση JSP, που αντιμετωπίστηκε ως εξής Java προσπαθήστε-πιάστε.
  • 🗂️ Τρεις τύποι: Ελεγμένες εξαιρέσεις, εξαιρέσεις χρόνου εκτέλεσης και εξαιρέσεις σφαλμάτων.
  • 🧾 Τετραγωνισμένος: Πρέπει να γίνει χειρισμός των FileNotFoundException, IOException και SQLException.
  • 🧨 Διάρκεια: ArrayIndexOutOfBounds, ArithmeticException και NullPointerException.
  • 🛟 Σελίδα σφάλματος / Σελίδα σφάλματος: Ανακατεύθυνση σφαλμάτων σε μια σελίδα που εκτυπώνει τη στοίβα εξαιρέσεων trace.

Εξαίρεση χειρισμού στο JSP

Τι είναι η Εξαίρεση στο JSP;

εξαιρέσεις στο JSP εμφανίζονται όταν υπάρχει σφάλμα στον κώδικα είτε από τον προγραμματιστή είτε εσωτερικό σφάλμα από το σύστημα. Ο χειρισμός εξαιρέσεων στο JSP είναι ο ίδιος όπως στο Java όπου διαχειριζόμαστε εξαιρέσεις χρησιμοποιώντας μπλοκ Try Catch. Διαφορετικός Java, υπάρχουν εξαιρέσεις στο JSP και όταν δεν υπάρχει σφάλμα στον κώδικα.

Τύποι εξαιρέσεων στο JSP

Οι εξαιρέσεις στο JSP είναι τριών τύπων:

  1. Επιλεγμένη Εξαίρεση
  2. Εξαίρεση χρόνου εκτέλεσης
  3. Εξαίρεση σφάλματος

Επιλεγμένες Εξαιρέσεις

Συνήθως πρόκειται για σφάλμα χρήστη ή προβλήματα που δεν φαίνονται από τον προγραμματιστή ονομάζονται ελεγμένες εξαιρέσεις. Μερικά παραδείγματα εξαιρέσεων που έχουν επιλεγεί είναι:

  1. FileNotFoundException: Αυτή είναι μια επιλεγμένη εξαίρεση (όπου προσπαθεί να βρει ένα αρχείο όταν το αρχείο δεν βρίσκεται στο δίσκο).
  2. IO Εξαίρεση: Αυτή είναι επίσης επιλεγμένη εξαίρεση εάν υπάρχει κάποια εξαίρεση κατά την ανάγνωση ή την εγγραφή ενός αρχείου, τότε τίθεται η εξαίρεση IO.
  3. SQLException: Αυτή είναι επίσης μια επιλεγμένη εξαίρεση όταν το αρχείο είναι συνδεδεμένο με SQL βάσης δεδομένων και υπάρχει πρόβλημα με τη συνδεσιμότητα της βάσης δεδομένων SQL, τότε εγείρεται το SQLException

Εξαιρέσεις χρόνου εκτέλεσης

Οι εξαιρέσεις χρόνου εκτέλεσης είναι αυτές που θα μπορούσε να είχε αποφύγει ο προγραμματιστής. Αγνοούνται κατά τη στιγμή της σύνταξης. Μερικά παραδείγματα εξαίρεσης χρόνου εκτέλεσης είναι:

  1. ArrayIndexOutOfBoundsException: Αυτή είναι μια εξαίρεση χρόνου εκτέλεσης όταν το μέγεθος του πίνακα υπερβαίνει το στοιχεία.
  2. Αριθμητική Εξαίρεση: Αυτή είναι επίσης μια εξαίρεση χρόνου εκτέλεσης όταν υπάρχουν μαθηματικές πράξεις, οι οποίες δεν επιτρέπονται υπό κανονικές συνθήκες, για παράδειγμα, η διαίρεση ενός αριθμού με το 0 θα δώσει μια εξαίρεση.
  3. Εξαίρεση NullPointer: Αυτή είναι επίσης μια εξαίρεση χρόνου εκτέλεσης που αυξάνεται όταν μια μεταβλητή ή ένα αντικείμενο είναι μηδενικό όταν προσπαθούμε να έχουμε πρόσβαση στο ίδιο. Αυτή είναι μια πολύ συνηθισμένη εξαίρεση.

Σφάλματα:

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

  1. Λάθος: Αυτό το σφάλμα είναι μια υποκατηγορία του throwable που υποδεικνύει σοβαρά προβλήματα που μια εφαρμογή δεν μπορεί να συλλάβει.
  2. Σφάλμα Instantiation: Αυτό το σφάλμα παρουσιάζεται όταν προσπαθούμε να δημιουργήσουμε ένα αντικείμενο και αυτό αποτυγχάνει.
  3. Εσωτερικό σφάλμα: Αυτό το σφάλμα παρουσιάζεται όταν παρουσιάστηκε σφάλμα από το 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.

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

Χειριστείτε την εξαίρεση στο JSP

Παραγωγή:

Η εξαίρεση έχει ενεργοποιηθεί, η οποία δημιουργήθηκε από το exception_example.jsp χρησιμοποιώντας το αντικείμενο throw της εξαίρεσης χρόνου εκτέλεσης και λαμβάνουμε τον παραπάνω κώδικα. Επίσης, καλείται το guru_error.jsp από το οποίο Guru Παρουσιάστηκε εξαίρεση από αυτό το αρχείο.

Συχνές Ερωτήσεις

Οι εξαιρέσεις JSP είναι ελεγμένες εξαιρέσεις (όπως FileNotFoundException, IOException, SQLException), εξαιρέσεις χρόνου εκτέλεσης (όπως ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) και σφάλματα (όπως υπερχείλιση στοίβας και εσωτερικά σφάλματα JVM).

Το χαρακτηριστικό errorPage ονομάζει τη σελίδα στην οποία πρέπει να ανακατευθυνθεί μια εξαίρεση. Το χαρακτηριστικό isErrorPage, που έχει οριστεί σε true σε αυτήν τη σελίδα-στόχο, της επιτρέπει να έχει πρόσβαση στο έμμεσο αντικείμενο εξαίρεσης και να εμφανίζει το σφάλμα.

Το έμμεσο αντικείμενο εξαίρεσης είναι μια παρουσία του Throwable που είναι διαθέσιμη μόνο σε σελίδες σφάλματος (isErrorPage=true). Εκθέτει μεθόδους όπως getMessage(), getCause() και printStack.Trace() για να αναφέρετε το σφάλμα.

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

Ναι. Η Τεχνητή Νοημοσύνη μπορεί να προτείνει πού να προστεθούν μπλοκ try-catch ή ένα errorPage, να δημιουργήσει μια επαναχρησιμοποιήσιμη σελίδα σφάλματος και να επισημάνει μη χειρισμένες ελεγμένες εξαιρέσεις, βελτιώνοντας την ανθεκτικότητα των εφαρμογών JSP.

Συνοψίστε αυτήν την ανάρτηση με: