Poikkeuskäsittely JSP:ssä
Mikä on poikkeus JSP:ssä?
Poikkeukset JSP:ssä esiintyy, kun koodissa on virhe joko kehittäjän toimesta tai järjestelmässä on sisäinen virhe. Poikkeuskäsittely JSP:ssä on sama kuin JSP:ssä Java jossa hallitsemme poikkeuksia käyttämällä Try Catch -lohkoja. Toisin kuin Java, JSP:ssä on poikkeuksia myös silloin, kun koodissa ei ole virhettä.
JSP:n poikkeustyypit
JSP:ssä poikkeuksia on kolmenlaisia:
- Tarkistettu poikkeus
- Kestoaika poikkeus
- Virhepoikkeus
Tarkistetut poikkeukset
Se on yleensä käyttäjän virhe tai ongelmia, joita kehittäjä ei näe, kutsutaan tarkistetuiksi poikkeuksiksi. Joitakin esimerkkejä tarkistetuista poikkeuksista ovat:
- FileNotFoundException: Tämä on valittu poikkeus (jossa se yrittää löytää tiedoston, kun tiedostoa ei löydy levyltä).
- IO poikkeus: Tämä on myös tarkistettu poikkeus, jos tiedoston lukemisen tai kirjoittamisen aikana tapahtuu poikkeus, niin IO-poikkeus nostetaan esiin.
- SQLException: Tämä on myös valittu poikkeus, kun tiedosto on yhdistetty SQL tietokanta, ja SQL-tietokannan liitettävyydessä on ongelma, SQLException otetaan esille
Ajonaikaiset poikkeukset
Ajonaikaiset poikkeukset ovat sellaisia, jotka ohjelmoija olisi voinut välttää. Ne jätetään huomioimatta käännöshetkellä. Joitakin esimerkkejä ajonaikaisista poikkeuksista ovat:
- ArrayIndexOutOfBoundsException: Tämä on ajonaikainen poikkeus, kun taulukon koko ylittää elementtejä.
- Aritmeettinen poikkeus: Tämä on myös ajonaikainen poikkeus, kun on matemaattisia operaatioita, jotka eivät ole sallittuja normaaleissa olosuhteissa, esimerkiksi luvun jakaminen nollalla antaa poikkeuksen.
- NullPointer poikkeus: Tämä on myös ajonaikainen poikkeus, joka syntyy, kun muuttuja tai objekti on tyhjä, kun yritämme käyttää samaa. Tämä on hyvin yleinen poikkeus.
virheet:
Ongelma johtuu käyttäjän tai ohjelmoijan ohjauksesta. Jos pino vuotaa yli, voi tapahtua virhe. Alla on lueteltu joitakin esimerkkejä virheistä:
- Virhe: Tämä virhe on heitettävien virheiden alaluokka, joka osoittaa vakavia ongelmia, joita sovellus ei pysty havaitsemaan.
- Instantointivirhe: Tämä virhe ilmenee, kun yritämme luoda objektin, mutta se ei onnistu.
- Sisäinen virhe: Tämä virhe ilmenee, kun JVM:stä eli JVM:stä on tapahtunut virhe Java Virtuaalikone.
Virhepoikkeukset
Se on heitettävän luokan esiintymä, ja sitä käytetään virhesivuilla. Jotkut heitettävien luokan menetelmistä ovat:
- Julkinen merkkijono getMessage() – palauttaa viestin poikkeuksesta.
- Julkinen heitettävissäCause() – palauttaa poikkeuksen syyn
- Julkinen printStackTrace()– palauttaa poikkeuksen pinojäljen.
Kuinka käsitellä poikkeuksia JSP:ssä
Tässä on esimerkki poikkeuksen käsittelemisestä JSP:ssä:
Poikkeus_esimerkki.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>
Koodin selitys:
Poikkeus_esimerkki.jsp
Koodirivi 1: Tässä asetamme virhesivuksi guru_error.jsp, jota käytetään, kun virhe ohjataan uudelleen.
Koodirivi 15: otamme muuttujan num ja asetamme sen arvoon 10 ja tarkistamme ehdon, jos num on 10, sitten heittääksemme ajonaikaisen poikkeuksen, jossa on virheilmoitus.
Guru_error.jsp
Koodirivi 1: Tässä asetetaan isErrorPageattribute arvoon true.
Koodirivi 12: Poikkeus on esitetty tiedostossa poikkeus_esimerkki.jsp käyttämällä throw-objektia, ja tämä poikkeus näytetään tässä, koska IsErrorPage-attribuutti on merkitty tosi. Käyttämällä poikkeusta (tämä on objekti, jonka avulla JSP voi käyttää poikkeustietoja.) yritämme tulostaa tiedostossa poikkeus_esimerkki.jsp tapahtuneen virheen pinojäljitystä.
Kun suoritat yllä olevan koodin, saat seuraavan tulosteen:
lähtö:
Poikkeus on nostettu, joka heitettiin osoitteesta poikkeus_example.jsp käyttämällä ajonaikaisen poikkeuksenheiton objektia ja saamme yllä olevan koodin. Tästä tiedostosta kutsutaan myös guru_error.jsp, josta Guru-poikkeus on tapahtunut.
Yhteenveto
- JSP:ssä poikkeuksia esiintyy, kun koodissa on virhe joko kehittäjän toimesta tai järjestelmässä on sisäinen virhe.
- JSP:n poikkeuksia on 3 tyyppiä: Tarkistetut poikkeukset, Suorituksenaikaiset poikkeukset ja Virhepoikkeukset
- Tarkistettu poikkeus on yleensä käyttäjän virhe tai ongelmia, joita kehittäjä ei näe, kutsutaan tarkistetuiksi poikkeuksiksi.
- Ajonaikaiset poikkeukset ovat sellaisia, jotka ohjelmoija olisi voinut välttää. Ne jätetään huomioimatta käännöshetkellä.
- Virhepoikkeus on heitettävän luokan esiintymä, ja sitä käytetään virhesivuilla.