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:
- Gecontroleerde uitzondering
- Runtime-uitzondering
- 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:
- FileNotFoundException: Dit is een gecontroleerde uitzondering (waarbij wordt geprobeerd een bestand te vinden terwijl het bestand niet op de schijf wordt gevonden).
- 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.
- 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:
- ArrayIndexOutOfBoundsException: Dit is een runtime-uitzondering wanneer de arraygrootte groter is dan de geeft je de mogelijkheid.
- 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.
- 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:
- Fout: Deze fout is een subklasse van throwable die ernstige problemen aangeeft die een toepassing niet kan opvangen.
- Instantiatiefout: Deze fout treedt op wanneer we proberen een object te instantiëren, maar dat lukt niet.
- 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 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 de volgende uitvoer:
Output:
De uitzondering is gegenereerd die werd gegooid 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 van waaruit de Guru-uitzondering is opgetreden vanuit dit bestand.
Samenvatting
- 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.