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ů:
- Zaškrtnutá výjimka
- Výjimka za běhu
- 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:
- FileNotFoundException: Toto je kontrolovaná výjimka (kde se pokusí najít soubor, když soubor není nalezen na disku).
- 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.
- 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:
- Výjimka ArrayIndexOutOfBounds: Toto je výjimka za běhu, když velikost pole překročí prvky.
- 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.
- 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:
- Chyba: Tato chyba je podtřídou throwable, která označuje vážné problémy, které aplikace nemůže zachytit.
- Chyba instanciace: K této chybě dochází, když se pokusíme vytvořit instanci objektu, ale nepodaří se to.
- 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()– vrací zásobníktrace 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
Code Řádek 1: Zde nastavujeme chybovou stránku na guru_error.jsp, která bude použita, když bude chyba přesměrována.
Code Řádek 15: 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
Code Řádek 1: Zde nastavujeme isErrorPageattribute na true.
Code Řádek 12: Výjimka byla vyvolána v souboru exception_example.jsp pomocí objektu throw a tato výjimka bude zde zobrazena, protože atribut IsErrorPage je označen jako true. Pomocí objektu exception (toto je objekt, který umožňuje přístup k datům výjimky pomocí JSP) se pokoušíme vypsat zásobník.tracchyba, ke které došlo v souboru exception_example.jsp.
Když spustíte výše uvedený kód, získáte následující výstup:
Výstup:
Byla vyvolána výjimka, která byla vyvolána z exception_example.jsp pomocí objektu throw runtime exception a my dostaneme výše uvedený kód. Také je volána guru_error.js, ze které Guru V tomto souboru došlo k výjimce.
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.

