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:

  1. Ellenőrzött kivétel
  2. Futásidejű kivétel
  3. 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:

  1. 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).
  2. 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.
  3. 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:

  1. ArrayIndexOutOfBoundsException: Ez egy futásidejű kivétel, amikor a tömb mérete meghaladja a elemek.
  2. 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.
  3. 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:

  1. hiba: Ez a hiba a dobható alosztálya, amely olyan súlyos problémákat jelez, amelyeket az alkalmazás nem tud elkapni.
  2. 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.
  3. 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:

Kivétel kezelése JSP-ben

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.