Das beste JSP Ausnahmebehandlung-Tutorial im Jahr 2024. In diesem Tutorial können Sie Verwenden Sie Exception-Objekte,Verwenden Sie JSTL-Tags in Fehlerseite,Verwenden Sie versuchen ... catch-Block, lernen
Wenn JSP-Anwendung zu schreiben, Programmierer einige BUG verpassen kann, kann der BUG überall im Programm erscheinen. JSP-Code ist in der Regel die folgenden Kategorien Ausnahme:
In diesem Abschnitt werden ein paar einfache und elegante Art und Weise geben Laufzeit Ausnahmen und Fehler zu behandeln.
Ausnahmeobjekt ist eine Instanz von Throwable Unterklasse, nur in der Fehlerseite. Die folgende Tabelle enthält einige der Throwable Klasse in wichtigen Punkten:
Nein . | Method & Beschreibung |
---|---|
1 | public String getMessage () Gibt die Ausnahme. Diese Information wird in den Konstruktor initialisiert Throwable |
2 | public ThrowablegetCause () Gibt die Ursache der Ausnahme, das Objekt vom Typ Throwable |
3 | public String toString () Gibt den Namen der Klasse |
4 | public void print () Der Ausnahme-Stack-Trace-Ausgabe zu System.err |
5 | public StackTraceElement [] getStackTrace () In der Form eines Stapels Spurenelement des Arrays gibt eine Ausnahme-Stack-Trace |
6 | public ThrowablefillInStackTrace () Die aktuelle Stack-Trace füllen Throwable Objekt |
JSP bietet die Möglichkeit, Fehlerseiten für jede JSP-Seite angeben. Jedes Mal, wenn die Seite eine Ausnahme auslöst, wird JSP-Container automatisch die Fehlerseite aufrufen.
Die folgenden Beispiele main.jsp gibt eine Fehlerseite. Verwenden Sie <% @ page Errorpage = "XXXXX"%> Direktive gibt eine Fehlerseite.
<%@ page errorPage="ShowError.jsp" %> <html> <head> <title>Error Handling Example</title> </head> <body> <% // Throw an exception to invoke the error page int x = 1; if (x == 1) { throw new RuntimeException("Error condition!!!"); } %> </body> </html>
Nun schreiben ShowError.jsp folgende Dokumente:
<%@ page isErrorPage="true" %> <html> <head> <title>Show Error Page</title> </head> <body> <h1>Oppsde.</h1> <p>Sorry, an error occurred.</p> <p>Here is the exception stack trace: </p> <pre> <% exception.printStackTrace(response.getWriter()); %>
Kenntnis nehmend, ShowError.jsp Datei verwendet <% @ page isErrorPage = "true"%> Richtlinie, die die JSP-Compiler sagt muss eine Ausnahme Instanzvariable zu erzeugen.
Jetzt versuchen main.jsp Seite zuzugreifen, wird es die folgenden Ergebnisse erzielt:
java.lang.RuntimeException: Error condition!!! dedede Oppsde. Sorry, an error occurred. Here is the exception stack trace:
JSTL-Tags können verwendet werden Fehlerseite ShowError.jsp zu schreiben. Dieses Beispiel Code und Logik in dem Beispiel Code ist fast gleich, aber in diesem Fall ist der Code hat eine bessere Struktur und kann weitere Informationen liefern:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page isErrorPage="true" %> <html> <head> <title>Show Error Page</title> </head> <body> <h1>Oppsde.</h1> <table width="100%" border="1"> <tr valign="top"> <td width="40%"><b>Error:</b></td> <td>${pageContext.exception}</td> </tr> <tr valign="top"> <td><b>URI:</b></td> <td>${pageContext.errorData.requestURI}</td> </tr> <tr valign="top"> <td><b>Status code:</b></td> <td>${pageContext.errorData.statusCode}</td> </tr> <tr valign="top"> <td><b>Stack trace:</b></td> <td> <c:forEach var="trace" items="${pageContext.exception.stackTrace}"> <p>${trace}</p> </c:forEach> </td> </tr> </table> </body> </html>
Ergebnisse sind wie folgt:
Wenn Sie eine Seite die Ausnahmebehandlung zu setzen möchten, und für verschiedene Ausnahmen sind unterschiedlich gehandhabt, dann brauchen Sie einen try de. catch-Block zu verwenden.
Das nächste Beispiel zeigt, wie der try de. catch-Block zu verwenden, wird der Code in main.jsp platziert werden:
<html> <head> <title>Tryde.Catch Example</title> </head> <body> <% try{ int i = 1; i = i / 0; out.println("The answer is " + i); } catch (Exception e){ out.println("An exception occurred: " + e.getMessage()); } %> </body> </html>
Versuchen Sie main.jsp zu besuchen, wird es die folgenden Ergebnisse liefern:
An exception occurred: / by zero