JSP异常处理

当写JSP代码,程序员可能会留下它可以发生在任何部分代码的编码错误。有以下的错误类型在JSP代码:

  • 检查异常: 检查异常是一个例外,通常是用户错误或不能由程序员不可预见的问题。例如,如果一个文件被打开,但该文件无法找到,则会出现异常。这些例外并不能简单地在编译时被忽略。

  • 运行时异常: 运行时异常是发生,大概本来是可以由编程人员避免异常。而不是检查异常,运行时异常是在编译时忽略不计。

  • 错误: 这些都不是例外,但所出现超出用户或程序员的控制问题。错误通常忽略了代码,因为你可以减少做有关的错误。例如,如果发生堆栈溢出时,会产生一个错误。但在编译的时候还是被忽略了。

本教程会给你一些简单而优雅的方式来处理运行时产生在JSP代码异常/错误。

使用异常对象:

异常对象是可抛出(例如,java.lang. NullPointerException)的一个子类的实例,并仅在错误页面使用。以下是在Throwable类中提供重要方法列表。

SN 方法和描述
1 public String getMessage()
Returns a detailed message about the exception that has occurred. This message is initialized in the Throwable constructor.
2 public Throwable getCause()
Returns the cause of the exception as represented by a Throwable object.
3 public String toString()
Returns the name of the class concatenated with the result of getMessage()
4 public void printStackTrace()
Prints the result of toString() along with the stack trace to System.err, the error output stream.
5 public StackTraceElement [] getStackTrace()
Returns an array containing each element on the stack trace. The element at index 0 represents the top of the call stack, and the last element in the array represents the method at the bottom of the call stack.
6 public Throwable fillInStackTrace()
Fills the stack trace of this Throwable object with the current stack trace, adding to any previous information in the stack trace.

JSP提供了一个选项来为每个JSP指定错误页面。每当页面抛出一个异常,JSP容器自动调用的错误页面。

下面是一个例子,说明指定main.jsp一个错误页面。要设置一个错误页面,使用 <%@ page errorPage="xxx" %>指令。

<%@ 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>

现在,写一个错误处理JSP ShowError.jsp,这将在下文给出。请注意,错误处理页面包含指令<%@ page isErrorPage="true" %>。该指令使JSP编译器生成的异常实例变量。