Обработка исключений JSP: страница ошибок в JSP

Что такое исключение в JSP?

Исключения в JSP возникают, когда в коде есть ошибка разработчика или внутренняя ошибка системы. Обработка исключений в JSP такая же, как и в Java, где мы управляем исключениями с помощью блоков Try Catch. В отличие от Java, в JSP бывают исключения и тогда, когда в коде нет ошибок.

Типы исключений в JSP

Исключения в JSP бывают трех типов:

  1. Проверено исключение
  2. Исключение времени выполнения
  3. Исключение ошибки

Проверенные исключения

Обычно это ошибка пользователя или проблемы, которые не видит разработчик, называемые проверенными исключениями.

Некоторые примеры проверенных исключений:

  1. FileNotFoundException: это проверенное исключение (когда оно пытается найти файл, когда файл не найден на диске).
  2. Исключение ввода-вывода: Это также проверяемое исключение. Если во время чтения или записи файла возникает какое-либо исключение, возникает исключение ввода-вывода.
  3. SQLException: Это также проверенное исключение, когда файл связан с SQL базы данных, и существует проблема с подключением базы данных SQL, тогда возникает SQLException

Исключения времени выполнения

Исключения во время выполнения — это те, которых программист мог бы избежать. Они игнорируются во время компиляции.

Некоторые примеры исключений во время выполнения:

  1. ArrayIndexOutOfBoundsException: это исключение времени выполнения, когда размер массива превышает элементы.
  2. Арифметическое исключение: Это также исключение во время выполнения, когда есть какие-либо математические операции, которые не разрешены в обычных условиях, например, деление числа на 0 приведет к исключению.
  3. Исключение нулевого указателя: Это также исключение времени выполнения, которое возникает, когда переменная или объект имеет значение null, когда мы пытаемся получить к нему доступ. Это очень распространенное исключение.

Ошибки:

Проблема возникает из-за контроля пользователя или программиста. Если стек переполняется, может возникнуть ошибка.

Некоторые примеры ошибок приведены ниже:

  1. Ошибка: Эта ошибка является подклассом throwable и указывает на серьезные проблемы, которые приложение не может обнаружить.
  2. Ошибка создания экземпляра: Эта ошибка возникает, когда мы пытаемся создать экземпляр объекта, но это не удается.
  3. Внутренняя ошибка: Эта ошибка возникает, когда произошла ошибка JVM, т.е. Виртуальная машина Java.

Исключения ошибок

Это экземпляр класса throwable, который используется на страницах ошибок.

Некоторые методы класса throwable:

  • Открытая строка getMessage() – возвращает сообщение об исключении.
  • Публичный throwablegetCause() – возвращает причину исключения
  • Публичная печатьStackTrace()– возвращает трассировку стека исключения.

Как обрабатывать исключения в JSP

Вот пример обработки исключений в JSP:

Exception_example.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>

Гуру_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>

Расшифровка кода:

Exception_example.jsp

Строка кода 1: Здесь мы устанавливаем страницу ошибки в guru_error.jsp, которая будет использоваться при перенаправлении ошибки.

Строка кода 15: мы берем переменную num, устанавливаем для нее значение 10 и проверяем условие, если num равно 10, а затем выдаем исключение времени выполнения с сообщением как условие ошибки.

Гуру_error.jsp

Строка кода 1: Здесь мы устанавливаем для атрибута isErrorPage значение true.

Строка кода 12: Исключение было вызвано вException_example.jsp с использованием объекта throw, и это исключение будет показано здесь, поскольку атрибут IsErrorPage помечен как true. Используя объект исключения (это объект, который позволяет JSP получить доступ к данным исключения), мы пытаемся напечатать трассировку стека ошибки, которая произошла вException_example.jsp.

Когда вы выполните приведенный выше код, вы получите следующееwing вывод:

Обработка исключений в JSP

Вывод:

Было возбуждено исключение, которое было создано изException_example.jsp с использованием объекта throw исключения времени выполнения, и мы получаем приведенный выше код.

Также вызывается guru_error.jsp, из-за которого в этом файле произошло исключение Guru.

Итоги

  • Исключения в JSP возникают, когда в коде есть ошибка разработчика или внутренняя ошибка системы.
  • Исключения в JSP бывают трех типов: проверенные исключения, исключения времени выполнения и исключения ошибок.
  • Проверенное исключение обычно представляет собой ошибку пользователя или проблемы, которые не видит разработчик, называемые проверенными исключениями.
  • Исключения во время выполнения — это те, которых программист мог бы избежать. Они игнорируются во время компиляции.
  • Исключение ошибки — это экземпляр класса throwable, который используется на страницах ошибок.