Обработка на изключения в 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() – връща съобщението за изключение.
  • Обществено throwablegetCause() – връща причината за изключението
  • Публичен printStackTrace()– връща следата на стека на изключението.

Как да се справим с изключение в 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

Кодов ред 1: Тук задаваме страницата за грешка на guru_error.jsp, която ще се използва, когато грешката бъде пренасочена.

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

Guru_error.jsp

Кодов ред 1: Тук задаваме isErrorPageattribute на true.

Кодов ред 12: Изключението е повдигнато в exception_example.jsp с помощта на обект за изхвърляне и това изключение ще бъде показано тук, тъй като атрибутът IsErrorPage е маркиран като true. Използвайки обекта за изключение (това е обект, който позволява данните за изключение да бъдат достъпни от JSP.) се опитваме да отпечатаме следата на стека на грешката, възникнала в exception_example.jsp.

Когато изпълните горния код, получавате следния изход:

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

Изход:

Изключението беше повдигнато, което беше хвърлено от exception_example.jsp с помощта на обект за изхвърляне на изключение по време на изпълнение и получаваме горния код. Също така се извиква guru_error.jsp, от който е възникнало изключение на Guru от този файл.

Oбобщение

  • Изключенията в JSP възникват, когато има грешка в кода или от разработчика, или вътрешна грешка от системата.
  • Изключенията в JSP са от 3 типа: проверени изключения, изключения по време на изпълнение и изключения за грешки
  • Провереното изключение обикновено е потребителска грешка или проблеми, които не се виждат от разработчика, се наричат ​​​​проверени изключения.
  • Изключенията по време на изпълнение са тези, които програмистът е могъл да избегне. Те се игнорират по време на компилация.
  • Изключението за грешка е екземпляр на класа за изхвърляне и се използва в страниците за грешки.