Afhandeling van JSP-uitzonderingen: foutpagina in JSP

Wat is uitzondering in JSP?

Uitzonderingen in JSP treedt op wanneer er een fout in de code zit, hetzij door de ontwikkelaar, hetzij door een interne fout van het systeem. De afhandeling van uitzonderingen in JSP is hetzelfde als in Java, waar we uitzonderingen beheren met behulp van Try Catch-blokken. In tegenstelling tot Java zijn er uitzonderingen in JSP, ook als er geen fout in de code zit.

Soorten uitzonderingen in JSP

Er zijn drie soorten uitzonderingen in JSP:

  1. Gecontroleerde uitzondering
  2. Runtime-uitzondering
  3. Foutuitzondering

Aangevinkte uitzonderingen

Normaal gesproken is het een gebruikersfout of worden problemen die niet door de ontwikkelaar worden opgemerkt, gecontroleerde uitzonderingen genoemd.

Enkele voorbeelden van gecontroleerde uitzonderingen zijn:

  1. FileNotFoundException: Dit is een gecontroleerde uitzondering (waarbij wordt geprobeerd een bestand te vinden terwijl het bestand niet op de schijf wordt gevonden).
  2. IO-uitzondering: Dit is ook een gecontroleerde uitzondering. Als er een uitzondering is opgetreden tijdens het lezen of schrijven van een bestand, wordt de IO-uitzondering gegenereerd.
  3. SQLUitzondering: Dit is ook een gecontroleerde uitzondering wanneer het bestand is verbonden SQL database en er is een probleem met de connectiviteit van de SQL-database, dan wordt SQLException geactiveerd

Runtime-uitzonderingen

Runtime-uitzonderingen zijn degene die door de programmeur hadden kunnen worden vermeden. Ze worden genegeerd op het moment van compilatie.

Enkele voorbeelden van Runtime-uitzonderingen zijn:

  1. ArrayIndexOutOfBoundsException: Dit is een runtime-uitzondering wanneer de arraygrootte groter is dan de geeft je de mogelijkheid.
  2. Rekenkundige Uitzondering: Dit is ook een runtime-uitzondering wanneer er wiskundige bewerkingen zijn die onder normale omstandigheden niet zijn toegestaan. Het delen van een getal door 0 levert bijvoorbeeld een uitzondering op.
  3. NullPointer-uitzondering: Dit is ook een runtime-uitzondering die optreedt wanneer een variabele of een object nul is wanneer we proberen er toegang toe te krijgen. Dit is een veel voorkomende uitzondering.

fouten:

Het probleem ontstaat door de controle van de gebruiker of programmeur. Als de stapel overloopt, kan er een fout optreden.

Hieronder vindt u enkele voorbeelden van de fout:

  1. Fout: Deze fout is een subklasse van throwable die ernstige problemen aangeeft die een toepassing niet kan opvangen.
  2. Instantiatiefout: Deze fout treedt op wanneer we proberen een object te instantiëren, maar dat lukt niet.
  3. Interne fout: Deze fout treedt op wanneer er een fout is opgetreden vanuit JVM, dwz Java Virtual Machine.

Foutuitzonderingen

Het is een exemplaar van de klasse Throwable en wordt gebruikt in foutpagina's.

Enkele methoden voor werpklasse zijn:

  • Openbare tekenreeks getMessage() – retourneert het bericht van de uitzondering.
  • Publieke throwablegetCause() – retourneert de oorzaak van de uitzondering
  • Openbare printStackTrace()– retourneert de stacktrace van de uitzondering.

Hoe om te gaan met uitzonderingen in JSP

Hier is een voorbeeld van hoe u met uitzonderingen in JSP omgaat:

Uitzondering_voorbeeld.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>

Uitleg van de code:

Uitzondering_voorbeeld.jsp

Coderegel 1: Hier stellen we de foutpagina in op guru_error.jsp, die zal worden gebruikt wanneer de fout wordt omgeleid.

Coderegel 15: we nemen een variabele num en stellen deze in op 10 en controleren een voorwaarde als num 10 is en gooien dan een Runtime Exception met het bericht als Error Condition.

Guru_error.jsp

Coderegel 1: Hier stellen we het kenmerk isErrorPage in op true.

Coderegel 12: De uitzondering is gegenereerd in exception_example.jsp met behulp van het throw-object en die uitzondering wordt hier weergegeven omdat het kenmerk IsErrorPage is gemarkeerd als waar. Met behulp van het exception-object (dit is een object waarmee de uitzonderingsgegevens toegankelijk zijn voor de JSP.) proberen we de stacktrace af te drukken van de fout die is opgetreden in exception_example.jsp.

Wanneer u de bovenstaande code uitvoert, krijgt u het volgendewing output:

Uitzondering verwerken in JSP

Output:

Er is een uitzondering opgetreden die werd gegenereerd vanuit exception_example.jsp met behulp van het throw-object van de runtime-uitzondering en we krijgen de bovenstaande code.

Ook wordt guru_error.jsp aangeroepen waaruit Guru Exception is opgetreden in dit bestand.

Samengevat

  • Uitzonderingen in JSP doen zich voor wanneer er een fout in de code zit, hetzij door de ontwikkelaar, hetzij door een interne fout van het systeem.
  • Er zijn drie soorten uitzonderingen in JSP: gecontroleerde uitzonderingen, runtime-uitzonderingen en foutuitzonderingen
  • Gecontroleerde uitzonderingen zijn normaal gesproken een gebruikersfout of problemen die niet door de ontwikkelaar worden opgemerkt, worden gecontroleerde uitzonderingen genoemd.
  • Runtime-uitzonderingen zijn degene die door de programmeur hadden kunnen worden vermeden. Ze worden genegeerd op het moment van compilatie.
  • Foutuitzondering is een exemplaar van de klasse Throwable en wordt gebruikt op foutpagina's.