Обработка на изключения в JSP

⚡ Умно обобщение

Обработката на изключения в JSP управлява грешки, които възникват по време на изпълнение на код, подобно на Java Блокове try-catch. Изключенията се делят на три типа: checked, runtime и error. 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. Аритметично изключение: Това също е изключение по време на изпълнение, когато има някакви математически операции, които не са разрешени при нормални условия, например разделянето на число на 0 ще даде изключение.
  3. Изключение за NullPointer: Това също е изключение по време на изпълнение, което се повдига, когато променлива или обект е нула, когато се опитваме да осъществим достъп до същото. Това е много често изключение.

грешки:

Проблемът възниква поради контрола на потребителя или програмиста. Ако стекът препълва, може да възникне грешка. Някои примери за грешка са изброени по-долу:

  1. грешка: Тази грешка е подклас на throwable, който показва сериозни проблеми, които приложението не може да улови.
  2. Грешка при инстанциране: Тази грешка възниква, когато се опитаме да създадем обект, но той не успява да направи това.
  3. Вътрешна грешка: Тази грешка възниква, когато възникне грешка от JVM, т.е Java Виртуална машина.

Изключения при грешки

Това е екземпляр на класа за изхвърляне и се използва в страници с грешки. Някои методи на хвърляем клас са:

  • Обществен низ getMessage() – връща съобщението за изключение.
  • Публично хвърляем getCause() – връща причината за изключението
  • Публичен стек за печатTracе() – връща стека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 приложенията.

Обобщете тази публикация с: