Zpracování výjimek v JSP

Co je výjimka v JSP?

b) Výjimky v JSP nastanou, když dojde k chybě v kódu buď vývojářem, nebo vnitřní chybě systému. Zpracování výjimek v JSP je stejné jako v Java kde spravujeme výjimky pomocí bloků Try Catch. Na rozdíl od Java, v JSP existují výjimky, i když v kódu není žádná chyba.

Typy výjimek v JSP

Výjimky v JSP jsou tří typů:

  1. Zaškrtnutá výjimka
  2. Výjimka za běhu
  3. Výjimka chyby

Zaškrtnuté výjimky

Obvykle se jedná o chybu uživatele nebo problémy, které vývojář nevidí, se označují jako kontrolované výjimky. Některé příklady kontrolovaných výjimek jsou:

  1. FileNotFoundException: Toto je kontrolovaná výjimka (kde se pokusí najít soubor, když soubor není nalezen na disku).
  2. Výjimka IO: Toto je také kontrolovaná výjimka, pokud dojde k nějaké výjimce během čtení nebo zápisu souboru, pak je vyvolána výjimka IO.
  3. SQLException: Toto je také zaškrtnutá výjimka, když je soubor připojen SQL databáze a dojde k problému s konektivitou databáze SQL, pak je vyvolána výjimka SQL

Výjimky za běhu

Výjimky za běhu jsou ty, kterým se programátor mohl vyhnout. V době kompilace jsou ignorovány. Některé příklady výjimek za běhu jsou:

  1. Výjimka ArrayIndexOutOfBounds: Toto je výjimka za běhu, když velikost pole překročí prvky.
  2. Aritmetická výjimka: Toto je také výjimka za běhu, pokud existují nějaké matematické operace, které nejsou za normálních podmínek povoleny, například dělení čísla 0 poskytne výjimku.
  3. Výjimka NullPointer: Toto je také výjimka za běhu, která je vyvolána, když je proměnná nebo objekt null, když se k nim pokoušíme přistupovat. To je velmi častá výjimka.

Chyby:

Problém nastává kvůli ovládání uživatelem nebo programátorem. Pokud zásobník přeteče, může dojít k chybě. Některé příklady chyby jsou uvedeny níže:

  1. Chyba: Tato chyba je podtřídou throwable, která označuje vážné problémy, které aplikace nemůže zachytit.
  2. Chyba instanciace: K této chybě dochází, když se pokusíme vytvořit instanci objektu, ale nepodaří se to.
  3. Interní chyba: Tato chyba nastane, když dojde k chybě z JVM, tj Java Virtuální stroj.

Výjimky chyb

Je to instance třídy throwable a používá se na chybových stránkách. Některé metody vrhací třídy jsou:

  • Veřejný řetězec getMessage() – vrátí zprávu o výjimce.
  • Veřejné throwablegetCause() – vrátí příčinu výjimky
  • Veřejný printStackTrace()– vrátí stacktrace výjimky.

Jak zacházet s výjimkami v JSP

Zde je příklad, jak zpracovat výjimku v 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>

Vysvětlení kódu:

Exception_example.jsp

1. řádek kódu: Zde nastavujeme chybovou stránku na guru_error.jsp, která bude použita, když bude chyba přesměrována.

15. řádek kódu: bereme proměnnou num a nastavujeme ji na 10 a kontrolujeme podmínku, pokud je num 10, pak vyvoláme výjimku za běhu se zprávou jako Error Condition.

Guru_error.jsp

1. řádek kódu: Zde nastavujeme isErrorPageattribute na true.

12. řádek kódu: Výjimka byla vyvolána v example_example.jsp pomocí throw object a tato výjimka se zde zobrazí jako atribut IsErrorPage je označen jako true. Pomocí objektu výjimky (toto je objekt, který umožňuje JSP přístup k datům o výjimce.) se snažíme vytisknout stacktrace chyby, která se vyskytla v example_example.jsp.

Když spustíte výše uvedený kód, získáte následující výstup:

Handle Exception v JSP

Výstup:

Byla vyvolána výjimka, která byla vyvolána z příkladu_výjimky.jsp pomocí objektu throw runtime výjimky a dostáváme výše uvedený kód. Také je volán guru_error.jsp, ze kterého došlo k výjimce Guru z tohoto souboru.

Shrnutí

  • K výjimkám v JSP dochází, když je v kódu chyba buď vývojářem, nebo vnitřní chyba ze systému.
  • Výjimky v JSP jsou 3 typů: zaškrtnuté výjimky, výjimky za běhu a výjimky z chyb
  • Zaškrtnutá výjimka je obvykle chyba uživatele nebo problémy, které vývojář nevidí, se nazývají kontrolované výjimky.
  • Výjimky za běhu jsou ty, kterým se programátor mohl vyhnout. V době kompilace jsou ignorovány.
  • Výjimka chyby je instancí třídy throwable a používá se na chybových stránkách.