JSP 中的异常处理

JSP 中的异常是什么?

例外 在 JSP 中,当代码中出现错误时,无论是开发人员的错误还是系统内部的错误,都会发生异常。JSP 中的异常处理与 Java 我们使用 Try Catch 块来管理异常。与 Java,即使代码中没有错误,JSP 中也会出现异常。

JSP 中的异常类型

JSP 中的异常有三种类型:

  1. 检查异常
  2. 运行时异常
  3. 错误异常

检查异常

通常情况下,用户错误或开发人员无法察觉的问题被称为已检查异常。以下是一些已检查异常的示例:

  1. FileNotFoundException异常:这是一个已检查的异常(当在磁盘上找不到文件时,它会尝试查找该文件)。
  2. IO 异常:这也是检查异常,如果在读取或写入文件期间发生任何异常,则会引发 IO 异常。
  3. SQL异常:当文件连接到 SQL 数据库,并且 SQL 数据库的连接性存在问题,则引发 SQLException

运行时异常

运行时异常是程序员可以避免的异常。它们在编译时被忽略。一些运行时异常示例如下:

  1. ArrayIndexOutOfBoundsException 异常:当数组大小超出 分子.
  2. 算术异常:当有任何数学运算时,这也是一个运行时异常,这在正常情况下是不允许的,例如,将数字除以 0 就会引发异常。
  3. 空指针异常:这也是一个运行时异常,当我们尝试访问变量或对象时,如果该变量或对象为空,则会引发该异常。这是一个非常常见的异常。

错误:

问题是由于用户或程序员的控制而产生的。如果堆栈溢出,则可能会发生错误。下面列出了一些错误示例:

  1. 误差:此错误是 throwable 的子类,表示应用程序无法捕获的严重问题。
  2. 实例化错误:当我们尝试实例化一个对象但未能成功时,就会发生此错误。
  3. 内部错误:当 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 中发生的错误的堆栈跟踪。

执行上述代码时,您将获得以下输出:

在 JSP 中处理异常

输出:

已引发异常,该异常由使用运行时异常的 throw 对象从 exception_example.jsp 抛出,我们得到上述代码。还调用了 guru_error.jsp,该文件中发生了 Guru 异常。

总结

  • 当代码中出现错误(无论是由开发人员还是系统内部错误引起)时,就会发生 JSP 异常。
  • JSP 中的异常有 3 种类型:检查异常、运行时异常和错误异常
  • 检查异常通常是用户错误或开发人员看不到的问题被称为检查异常。
  • 运行时异常是程序员可以避免的异常。它们在编译时被忽略。
  • 错误异常是throwable类的一个实例,用于错误页面。