2.3 Servlet异常
在javax.servlet包中定义了两个异常类,ServletException和UnavailableException。
2.3.1 ServletException类
ServletException类定义了一个通用的异常,可以被init()、service()和doXXX()方法抛出,这个类提供了下面4个构造方法和1个实例方法:
public ServletException()
该方法构造一个新的Servlet异常。
public ServletException(java.lang.String message)
该方法用指定的的消息构造一个新的Servlet异常。这个消息可以被写入服务器的日志中,或者显示给用户。
public ServletException(java.lang.String message, java.lang.Throwable rootCause)
在Servlet执行时,如果有一个异常阻碍了Servlet的正常操作,那么这个异常就是根原因(root cause)异常。如果需要在一个Servlet异常中包含根原因的异常,可以调用这个构造方法,同时包含一个描述消息。例如:可以在ServletException异常中嵌入一个java.sql.SQLException异常。
public ServletException(java.lang.Throwable rootCause)
该方法同上,只是没有指定描述消息的参数。
public java.lang.Throwable getRootCause()
该方法返回引起这个Servlet异常的异常,也就是返回根原因的异常。
2.3.2 UnavailableException类
UnavailableException类是ServletException类的子类,该异常被Servlet抛出,用于向Servlet容器指示这个Servlet永久地或者暂时地不可用。这个类提供了下面2个构造方法和2个实例方法:
public UnavailableException(java.lang.String msg)
该方法用一个给定的消息构造一个新的异常,指示Servlet永久不可用。
public UnavailableException(java.lang.String msg, int seconds)
该方法用一个给定的消息构造一个新的异常,指示Servlet暂时不可用。其中的参数seconds指明在这个以秒为单位的时间内,Servlet不可用。如果Servlet不能估计出多长时间后它将恢复功能,可以传递一个负数或零给seconds参数。
public int getUnavailableSeconds()
该方法返回Servlet预期的暂时不可用的秒数。如果返回一个负数,表明Servlet永久不可用或者不能估计出Servlet多长时间不可用。
public boolean isPermanent()
该方法返回一个布尔值,用于指示Servlet是否是永久不可用。返回true,表明Servlet永久不可用;返回false,表明Servlet可用或者暂时不可用。