JSP Ausnahmebehandlung
Wenn Programmierer JSP-Programme schreiben, können sie einige Fehler übersehen, und diese Fehler können überall im Programm auftreten. In JSP-Code gibt es normalerweise die folgenden Arten von Ausnahmen:
- Geprüfte Ausnahmen: Eine geprüfte Ausnahme ist ein typischer Benutzerfehler oder ein Fehler, den ein Programmierer nicht vorhersehen kann. Wenn beispielsweise eine Datei geöffnet werden soll, aber nicht gefunden werden kann, wird eine Ausnahme ausgelöst. Diese Ausnahmen können zur Kompilierzeit nicht einfach ignoriert werden.
- Laufzeitausnahmen: Eine Laufzeitausnahme hätte möglicherweise vom Programmierer vermieden werden können, und solche Ausnahmen werden zur Kompilierzeit ignoriert.
- Fehler: Fehler sind keine Ausnahmen, aber das Problem ist, dass sie außerhalb der Kontrolle des Benutzers oder Programmierers liegen. Fehler werden im Code normalerweise ignoriert, und man kann fast nichts dagegen tun. Zum Beispiel Stack-Overflow-Fehler. Diese Fehler werden alle zur Kompilierzeit ignoriert.
Dieser Abschnitt wird einige einfache und elegante Möglichkeiten zum Behandeln von Laufzeitausnahmen und Fehlern bieten.
Verwenden des Exception-Objekts
Das Exception-Objekt ist eine Instanz einer Unterklasse von Throwable und nur in Fehlerseiten verfügbar. Die folgende Tabelle listet einige wichtige Methoden der Throwable-Klasse auf:
| Nein. | Methode&Beschreibung |
|---|---|
| 1 | public String getMessage()Gibt Informationen über die Ausnahme zurück. Diese Informationen werden im Throwable-Konstruktor initialisiert. |
| 2 | public ThrowablegetCause()Gibt die Ursache der Ausnahme als Throwable-Objekt zurück. |
| 3 | public String toString()Gibt den Klassennamen zurück. |
| 4 | public void printStackTrace()Gibt den Stacktrace der Ausnahme an System.err aus. |
| 5 | public StackTraceElement [] getStackTrace()Gibt den Stacktrace der Ausnahme als Array von Stacktrace-Elementen zurück. |
| 6 | public ThrowablefillInStackTrace()Füllt das Throwable-Objekt mit dem aktuellen Stacktrace. |
JSP bietet die Möglichkeit, für jede JSP-Seite eine Fehlerseite anzugeben. Immer wenn eine Seite eine Ausnahme auslöst, ruft der JSP-Container automatisch die Fehlerseite auf.
Das folgende Beispiel gibt eine Fehlerseite für main.jsp an. Verwenden Sie die Direktive <%@page errorPage="XXXXX"%>, um eine Fehlerseite anzugeben.
<%@ 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>
Schreiben Sie nun die Datei ShowError.jsp wie folgt:
<%@ page isErrorPage="true" %> <html> <head> <title>Show Error Page</title> </head> <body> <h1>Opps...</h1> <p>Sorry, an error occurred.</p> <p>Here is the exception stack trace: </p> <pre> <% exception.printStackTrace(response.getWriter()); %>