Afhandeling van uitzonderingen in JSP

⚡ Slimme samenvatting

Foutafhandeling in JSP beheert fouten die optreden tijdens de uitvoering van code, vergelijkbaar met Java try-catch-blokken. Uitzonderingen vallen in drie categorieën: gecontroleerde uitzonderingen, runtime-uitzonderingen en foutuitzonderingen. JSP-pagina's gebruiken de attributen errorPage en isErrorPage om uitzonderingen door te verwijzen en weer te geven.

  • ⚠️ Uitzondering gedefinieerd: Een fout tijdens de uitvoering van JSP, afgehandeld als volgt: Java try-catch.
  • 🗂️ Drie typen: Gecontroleerde, runtime- en foutmeldingen.
  • 🧾 Gecontroleerd: Fouten zoals FileNotFoundException, IOException en SQLException moeten worden afgehandeld.
  • 🧨 Speeltijd: ArrayIndexOutOfBounds, ArithmeticException en NullPointerException.
  • 🛟 errorPage / isErrorPage: Foutmeldingen doorsturen naar een pagina die de uitzonderingsstack weergeeft trace.

Afhandeling van uitzonderingen 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 ook uitzonderingen in JSP 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 problemen die niet door de ontwikkelaar worden gezien, worden 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 met SQL database en er is een probleem met de connectiviteit van de SQL-database, dan wordt SQLException geactiveerd

Runtime-uitzonderingen

Runtime-uitzonderingen zijn uitzonderingen die de programmeur had kunnen vermijden. 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 worden uitgevoerd die onder normale omstandigheden niet zijn toegestaan. Bijvoorbeeld, het delen van een getal door 0 levert 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 stack overloopt, kan er een fout optreden. Hieronder staan ​​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 Virtuele machine.

Foutuitzonderingen

Het is een instantie van de throwable-klasse en wordt gebruikt in foutpagina's. Enkele methoden van de throwable-klasse zijn:

  • Openbare tekenreeks getMessage() – retourneert het bericht van de uitzondering.
  • Publieke werpbare getCause() – retourneert de oorzaak van de uitzondering
  • Public 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

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

Code Regel 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

Code Regel 1: Hier stellen we het attribuut isErrorPage in op true.

Code Regel 12: De uitzondering is gegenereerd in exception_example.jsp met behulp van het throw-object en die uitzondering wordt hier weergegeven omdat het attribuut IsErrorPage is ingesteld op true. Met behulp van het exception-object (dit is een object waarmee de JSP toegang krijgt tot de uitzonderingsgegevens) proberen we de stacktrace af te drukken.trace van de fout die optrad in exception_example.jsp.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer:

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, waardoor... Guru Er is een uitzondering opgetreden in dit bestand.

Veelgestelde vragen

JSP-uitzonderingen zijn er in verschillende vormen: gecontroleerde uitzonderingen (zoals FileNotFoundException, IOException, SQLException), runtime-uitzonderingen (zoals ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) en fouten (zoals stack-overflow en interne JVM-fouten).

Het attribuut errorPage geeft de naam aan van de pagina waarnaar een uitzondering moet worden doorgestuurd. Het attribuut isErrorPage, dat op die doelpagina op true is ingesteld, geeft toegang tot het impliciete uitzonderingsobject en zorgt ervoor dat de fout wordt weergegeven.

Het impliciete exception-object is een instantie van Throwable die alleen beschikbaar is op foutpagina's (isErrorPage=true). Het biedt methoden zoals getMessage(), getCause() en printStack.Trace() om de fout te melden.

AI kan een stapel lezen trace, de defecte lijn lokaliseren, de oorzaak in begrijpelijke taal uitleggen en een oplossing voorstellen, helping Ontwikkelaars lossen JSP-uitzonderingen sneller op tijdens het testen en de codebeoordeling.

Ja. AI kan aanbevelen waar try-catch-blokken of een errorPage moeten worden toegevoegd, een herbruikbare foutpagina genereren en niet-afgehandelde gecontroleerde uitzonderingen markeren, waardoor de robuustheid van JSP-applicaties wordt verbeterd.

Vat dit bericht samen met: