Kivételkezelés a JSP-ben
Mi a kivétel a JSP-ben?
kivételek JSP-ben akkor fordulnak elő, ha hiba van a kódban akár a fejlesztőtől, akár a rendszer belső hibájából. A kivételkezelés a JSP-ben ugyanaz, mint a JSP-ben Java ahol a Try Catch blokkok segítségével kezeljük a kivételeket. Ellentétben Java, vannak kivételek a JSP-ben akkor is, ha nincs hiba a kódban.
Kivételek típusai a JSP-ben
A JSP-ben három kivétel van:
- Ellenőrzött kivétel
- Futásidejű kivétel
- Hiba kivétel
Ellenőrzött kivételek
Ez általában felhasználói hiba, vagy a fejlesztő által nem észlelt problémákat ellenőrzött kivételeknek nevezik. Néhány példa az ellenőrzött kivételekre:
- FileNotFoundException: Ez egy ellenőrzött kivétel (amikor megpróbál fájlt találni, ha a fájl nem található a lemezen).
- IO kivétel: Ez akkor is bejelölt kivétel, ha egy fájl olvasása vagy írása során kivétel történt, akkor az IO kivétel megjelenik.
- SQLException: Ez is egy ellenőrzött kivétel, ha a fájl csatlakozik SQL adatbázist, és probléma van az SQL-adatbázis csatlakoztathatóságával, akkor az SQLException felvetődik
Futásidejű kivételek
A futásidejű kivételek azok, amelyeket a programozó elkerülhetett. Az összeállításkor figyelmen kívül hagyják őket. Néhány példa a futásidejű kivételekre:
- ArrayIndexOutOfBoundsException: Ez egy futásidejű kivétel, amikor a tömb mérete meghaladja a elemek.
- Számtani kivétel: Ez egy futásidejű kivétel is, ha vannak olyan matematikai műveletek, amelyek normál körülmények között nem megengedettek, például egy szám 0-val való elosztása kivételt ad.
- NullPointer kivétel: Ez egy futásidejű kivétel is, amely akkor jelenik meg, ha egy változó vagy egy objektum nulla, amikor megpróbáljuk elérni ugyanazt. Ez nagyon gyakori kivétel.
hibák:
A probléma a felhasználó vagy a programozó irányítása miatt merül fel. Ha a verem túlcsordul, hiba léphet fel. Az alábbiakban felsorolunk néhány példát a hibára:
- hiba: Ez a hiba a dobható alosztálya, amely olyan súlyos problémákat jelez, amelyeket az alkalmazás nem tud elkapni.
- Példányosítási hiba: Ez a hiba akkor fordul elő, amikor megpróbálunk példányosítani egy objektumot, de ez nem sikerül.
- Belső hiba: Ez a hiba akkor fordul elő, ha hiba történt a JVM-ből, pl Java Virtuális gép.
Hibakivételek
Ez a dobható osztály egy példánya, és hibaoldalakon használatos. A dobható osztály néhány módszere:
- Nyilvános karakterlánc getMessage() – adja vissza a kivétel üzenetét.
- Nyilvános throwablegetCaus() – visszaadja a kivétel okát
- Nyilvános printStackTrace()– adja vissza a kivétel veremnyomát.
A kivételek kezelése JSP-ben
Íme egy példa a kivételek kezelésére JSP-ben:
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>
A kód magyarázata:
Exception_example.jsp
1. kódsor: Itt a hibaoldalt a guru_error.jsp-re állítjuk, amely a hiba átirányításakor lesz használva.
15. kódsor: veszünk egy num változót, és 10-re állítjuk, és ellenőrzünk egy feltételt, ha a szám 10, akkor futásidejű kivételt dobunk a hibaállapot üzenettel.
Guru_error.jsp
1. kódsor: Itt az isErrorPageattribute értéket igazra állítjuk.
12. kódsor: A kivétel az kivétel_example.jsp fájlban szerepel a throw objektum használatával, és ez a kivétel itt jelenik meg, mivel az IsErrorPage attribútum igazként van megjelölve. A kivétel (ez egy olyan objektum, amely lehetővé teszi a kivételadatokhoz való hozzáférést a JSP számára) objektumot használva megpróbáljuk kinyomtatni a hiba stacktrace-jét, amely a kivétel_example.jsp fájlban történt.
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:
output:
Felmerült a kivétel, amelyet az kivétel_example.jsp fájlból dobtunk a futásidejű kivétel throw object-jének használatával, és megkapjuk a fenti kódot. A guru_error.jsp is meghívásra kerül, amelyből Guru kivétel történt ebből a fájlból.
Összegzésként
- A JSP-ben kivételek akkor fordulnak elő, ha a kódban hiba van a fejlesztőtől vagy a rendszer belső hibájából.
- A JSP-ben a kivételek 3 típusúak: ellenőrzött kivételek, futásidejű kivételek és hibakivételek
- Az ellenőrzött kivétel általában felhasználói hiba, vagy a fejlesztő által nem látott problémákat ellenőrzött kivételeknek nevezik.
- A futásidejű kivételek azok, amelyeket a programozó elkerülhetett. Az összeállításkor figyelmen kívül hagyják őket.
- A hibakivétel a dobható osztály egy példánya, és a hibaoldalakon használatos.