Обробка винятків у JSP

⚡ Розумний підсумок

Обробка винятків у JSP керує помилками, що виникають під час виконання коду, подібно до Java Блоки try-catch. Винятки поділяються на три типи: перевірені, виконані та помилкові. JSP-сторінки використовують атрибути errorPage та isErrorPage для перенаправлення та відображення винятків.

  • ⚠️ Визначення винятку: Помилка під час виконання JSP, оброблена подібним чином Java спроба зловити.
  • 🗂️ Три типи: Перевірені, виконані та помилкові винятки.
  • 🧾 Перевірено: Винятки FileNotFoundException, IOException та SQLException необхідно обробити.
  • 🧨 Час: ArrayIndexOutOfBounds, ArithmeticException та NullPointerException.
  • 🛟 Сторінка помилки / Сторінка є помилкою: Перенаправляти помилки на сторінку, яка друкує стек винятків trace.

Обробка винятків у JSP

Що таке виняток у JSP?

винятки у JSP виникають, коли в коді є помилка розробника або внутрішня помилка системи. Обробка винятків у JSP така ж, як і в Java де ми керуємо винятками за допомогою блоків Try Catch. На відміну від Java, у JSP також є винятки, коли в коді немає помилок.

Типи винятків у JSP

Винятки в JSP бувають трьох типів:

  1. Перевірений виняток
  2. Виняток часу виконання
  3. Виняток помилки

Перевірені винятки

Зазвичай це помилка користувача або проблеми, які не бачить розробник, називаються перевіреними винятками. Ось кілька прикладів перевірених винятків:

  1. FileNotFoundException: це перевірений виняток (де він намагається знайти файл, коли файл не знайдено на диску).
  2. IO Виняток: це також перевіряється виняток, якщо під час читання або запису файлу стався виняток, тоді виникає виняток IO.
  3. SQLException: це також перевірений виняток, коли файл підключено до SQL бази даних, і виникає проблема з підключенням бази даних SQL, тоді виникає SQLException

Винятки часу виконання

Винятки під час виконання — це ті, яких програміст міг уникнути. Вони ігноруються під час компіляції. Деякі приклади винятків серед виконання:

  1. ArrayIndexOutOfBoundsException: Це виняток під час виконання, коли розмір масиву перевищує елементи.
  2. ArithmeticException: це також виняток під час виконання, коли є будь-які математичні операції, які не дозволені за звичайних умов, наприклад, ділення числа на 0 призведе до виключення.
  3. Виняток NullPointer: це також виняток під час виконання, який виникає, коли змінна або об’єкт має значення null, коли ми намагаємося отримати до них доступ. Це дуже поширений виняток.

Помилки:

Проблема виникає через контроль користувача або програміста. Якщо стек переповнюється, може виникнути помилка. Деякі приклади помилок наведено нижче.

  1. помилка: ця помилка є підкласом throwable, який вказує на серйозні проблеми, які програма не може виявити.
  2. Помилка екземпляра: Ця помилка виникає, коли ми намагаємося створити екземпляр об’єкта, але це не вдається.
  3. Внутрішня помилка: Ця помилка виникає, коли виникає помилка з JVM, тобто Java Віртуальна машина.

Винятки помилок

Це екземпляр класу throwable, і він використовується на сторінках помилок. Нижче наведено кілька методів кидного класу:

  • Загальнодоступний рядок getMessage() – повертає повідомлення про виняткову ситуацію.
  • Публічний можливий викид getCause() – повертає причину винятку
  • Публічний printStackTracе() – повертає стекtracе винятку.

Як обробляти винятки в 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>

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>

Пояснення коду:

Exception_example.jsp

Code Лінія 1: Тут ми встановлюємо сторінку помилки для guru_error.jsp, яка використовуватиметься під час перенаправлення помилки.

Code Лінія 15: ми беремо змінну num і встановлюємо їй значення 10 і перевіряємо умову, якщо num дорівнює 10, щоб створити виняткову ситуацію під час виконання з повідомленням як умову помилки.

Guru_error.jsp

Code Лінія 1: Тут ми встановлюємо атрибут isErrorPage на значення true.

Code Лінія 12: Виняток було викликано в exception_example.jsp за допомогою об'єкта throw, і цей виняток буде показано тут, оскільки атрибут IsErrorPage позначено як true. Використовуючи об'єкт exception (це об'єкт, який дозволяє JSP отримувати доступ до даних винятку), ми намагаємося вивести стек.tracпомилки, яка виникла у exception_example.jsp.

Коли ви виконуєте наведений вище код, ви отримуєте такий результат:

Обробка винятків у JSP

вихід:

Виняток було викликано з exception_example.jsp за допомогою об'єкта throw runtime exception, і ми отримуємо наведений вище код. Також викликається guru_error.js, з якого Guru У цьому файлі стався виняток.

Поширені запитання

Винятки JSP – це перевірені винятки (наприклад, FileNotFoundException, IOException, SQLException), винятки під час виконання (наприклад, ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) та помилки (наприклад, переповнення стеку та внутрішні помилки JVM).

Атрибут errorPage вказує на сторінку, на яку слід перенаправити виняток. Атрибут isErrorPage, встановлений на значення true на цій цільовій сторінці, дозволяє отримати доступ до неявного об'єкта винятку та відобразити помилку.

Неявний об'єкт винятку є екземпляром Throwable, доступним лише на сторінках помилок (isErrorPage=true). Він надає такі методи, як getMessage(), getCause() та printStack.Trace(), щоб повідомити про помилку.

Штучний інтелект може читати стек tracе., точно визначити причину несправності, пояснити простою мовою першопричину та запропонувати рішення, допомогаping розробники швидше вирішують винятки JSP під час тестування та перевірки коду.

Так. Штучний інтелект може рекомендувати, куди додати блоки try-catch або сторінку помилки, генерувати сторінку помилки повторного використання та позначати необроблені перевірені винятки, покращуючи надійність JSP-застосунків.

Підсумуйте цей пост за допомогою: