Undantagshantering i JSP

Vad är undantag i JSP?

undantag i JSP uppstår när det finns ett fel i koden antingen av utvecklaren eller internt fel från systemet. Undantagshantering i JSP är densamma som i Java där vi hanterar undantag med hjälp av Try Catch-block. Till skillnad från Java, det finns undantag i JSP även när det inte finns något fel i koden.

Typer av undantag i JSP

Undantag i JSP är av tre typer:

  1. Markerat undantag
  2. Runtime undantag
  3. Fel undantag

Markerade undantag

Det är normalt ett användarfel eller problem som inte ses av utvecklaren kallas för kontrollerade undantag. Några exempel på markerade undantag är:

  1. FileNotFoundException: Detta är ett markerat undantag (där den försöker hitta en fil när filen inte hittas på disken).
  2. IO Undantag: Detta är också markerat undantag om det finns något undantag som inträffade under läsning eller skrivning av en fil så höjs IO-undantaget.
  3. SQLException: Detta är också ett markerat undantag när filen är ansluten till SQL databasen, och det finns problem med anslutningen till SQL-databasen så höjs SQLException

Runtime undantag

Runtime undantag är de som kunde ha undvikits av programmeraren. De ignoreras vid tidpunkten för sammanställningen. Några exempel på Runtime-undantag är:

  1. ArrayIndexOutOfBoundsException: Detta är ett körtidsundantag när arraystorleken överstiger element.
  2. Aritmetikundantag: Detta är också ett körtidsundantag när det finns några matematiska operationer som inte är tillåtna under normala förhållanden, till exempel att dividera ett tal med 0 ger ett undantag.
  3. NullPointer undantag: Detta är också ett runtime-undantag som höjs när en variabel eller ett objekt är null när vi försöker komma åt densamma. Detta är ett mycket vanligt undantag.

fel:

Problemet uppstår på grund av användarens eller programmerarens kontroll. Om stacken svämmar över kan fel uppstå. Några exempel på felet listas nedan:

  1. Fel: Det här felet är en underklass av throwable som indikerar allvarliga problem som ett program inte kan fånga.
  2. Instantieringsfel: Det här felet uppstår när vi försöker instansiera ett objekt och det misslyckas med det.
  3. Internt fel: Det här felet uppstår när det finns ett fel från JVM, dvs Java Virtuell maskin.

Undantag för fel

Det är en instans av den kastbara klassen och den används på felsidor. Några metoder för kastbar klass är:

  • Public String getMessage() – returnerar meddelandet om undantaget.
  • Public throwablegetCause() – returnerar orsaken till undantaget
  • Public printStackTrace()– returnerar stacktrace för undantaget.

Hur man hanterar undantag i JSP

Här är ett exempel på hur man hanterar undantag i 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>

Förklaring av koden:

Exception_example.jsp

Kodrad 1: Här ställer vi in ​​felsidan till guru_error.jsp som kommer att användas när felet kommer att omdirigeras.

Kodrad 15: vi tar en variabel num och ställer in den till 10 och kontrollerar ett villkor om num är 10 för att sedan skicka ett Runtime Exception med meddelandet som Error Condition.

Guru_error.jsp

Kodrad 1: Här ställer vi isErrorPageattribute till true.

Kodrad 12: Undantaget har tagits upp i exception_example.jsp med throw-objektet och det undantaget kommer att visas här eftersom IsErrorPage-attributet är markerat som sant. Med hjälp av undantaget (detta är ett objekt som gör att undantagsdata kan nås av JSP.) objektet försöker vi skriva ut stacktrace för felet som inträffade i exception_example.jsp.

När du kör ovanstående kod får du följande utdata:

Hantera undantag i JSP

Produktion:

Undantaget har tagits upp som kastades från exception_example.jsp med hjälp av throw object of runtime exception och vi får ovanstående kod. Även guru_error.jsp anropas från vilket Guru-undantag har inträffat från den här filen.

Sammanfattning

  • Undantag i JSP uppstår när det finns ett fel i koden antingen av utvecklaren eller internt fel från systemet.
  • Undantag i JSP är av tre typer: Markerade undantag, Runtime Exceptions och Error Exceptions
  • Markerat undantag är normalt ett användarfel eller problem som inte ses av utvecklaren kallas för kontrollerade undantag.
  • Runtime undantag är de som kunde ha undvikits av programmeraren. De ignoreras vid tidpunkten för sammanställningen.
  • Error exception är en instans av den kastbara klassen, och den används på felsidor.

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.