JSP 中的异常处理
JSP 中的异常是什么?
例外 在 JSP 中,当代码中出现错误时,无论是开发人员的错误还是系统内部的错误,都会发生异常。JSP 中的异常处理与 Java 我们使用 Try Catch 块来管理异常。与 Java,即使代码中没有错误,JSP 中也会出现异常。
JSP 中的异常类型
JSP 中的异常有三种类型:
- 检查异常
- 运行时异常
- 错误异常
检查异常
通常情况下,用户错误或开发人员无法察觉的问题被称为已检查异常。以下是一些已检查异常的示例:
- FileNotFoundException异常:这是一个已检查的异常(当在磁盘上找不到文件时,它会尝试查找该文件)。
- IO 异常:这也是检查异常,如果在读取或写入文件期间发生任何异常,则会引发 IO 异常。
- SQL异常:当文件连接到 SQL 数据库,并且 SQL 数据库的连接性存在问题,则引发 SQLException
运行时异常
运行时异常是程序员可以避免的异常。它们在编译时被忽略。一些运行时异常示例如下:
- ArrayIndexOutOfBoundsException 异常:当数组大小超出 分子.
- 算术异常:当有任何数学运算时,这也是一个运行时异常,这在正常情况下是不允许的,例如,将数字除以 0 就会引发异常。
- 空指针异常:这也是一个运行时异常,当我们尝试访问变量或对象时,如果该变量或对象为空,则会引发该异常。这是一个非常常见的异常。
错误:
问题是由于用户或程序员的控制而产生的。如果堆栈溢出,则可能会发生错误。下面列出了一些错误示例:
- 误差:此错误是 throwable 的子类,表示应用程序无法捕获的严重问题。
- 实例化错误:当我们尝试实例化一个对象但未能成功时,就会发生此错误。
- 内部错误:当 JVM 发生错误时,就会发生此错误,即 Java 虚拟机.
错误异常
它是 throwable 类的一个实例,用于错误页面。throwable 类的一些方法如下:
- 公共字符串获取消息() – 返回异常的消息。
- 公共 throwablegetCause() – 返回异常的原因
- 公共 printStackTrace()– 返回异常的堆栈跟踪。
如何在 JSP 中处理异常
下面是如何在 JSP 中处理异常的一个例子:
异常_示例.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>
代码说明:
异常_示例.jsp
代码行1: 这里我们将错误页面设置为 guru_error.jsp,该页面将在错误重定向时使用。
代码行15: 我们取一个变量 num 并将其设置为 10,并检查条件,如果 num 为 10,则抛出运行时异常,并将消息作为错误条件。
Guru_error.jsp
代码行1: 这里我们将 isErrorPageattribute 设置为 true。
代码行12: 使用 throw 对象在 exception_example.jsp 中引发了异常,并且由于 IsErrorPage 属性被标记为 true,因此该异常将在此处显示。使用异常(这是一个允许 JSP 访问异常数据的对象。)对象,我们尝试打印在 exception_example.jsp 中发生的错误的堆栈跟踪。
执行上述代码时,您将获得以下输出:
输出:
已引发异常,该异常由使用运行时异常的 throw 对象从 exception_example.jsp 抛出,我们得到上述代码。还调用了 guru_error.jsp,该文件中发生了 Guru 异常。
总结
- 当代码中出现错误(无论是由开发人员还是系统内部错误引起)时,就会发生 JSP 异常。
- JSP 中的异常有 3 种类型:检查异常、运行时异常和错误异常
- 检查异常通常是用户错误或开发人员看不到的问题被称为检查异常。
- 运行时异常是程序员可以避免的异常。它们在编译时被忽略。
- 错误异常是throwable类的一个实例,用于错误页面。