Poikkeuskäsittely JSP:ssä

⚡ Älykäs yhteenveto

JSP:n poikkeusten käsittely hallitsee koodin suorituksen aikana tapahtuvia virheitä samalla tavalla kuin Java try-catch-lohkot. Poikkeukset jaetaan kolmeen tyyppiin: tarkistetut, ajonaikaiset ja virheelliset. JSP-sivut käyttävät errorPage- ja isErrorPage-attribuutteja poikkeusten uudelleenohjaukseen ja näyttämiseen.

  • ⚠️ Poikkeus määritelty: JSP-suorituksen aikana tapahtunut virhe, jota käsitellään kuten Java yritä kiinni.
  • 🗂️ Kolme tyyppiä: Tarkistetut, suorituksenaikaiset ja virhepoikkeukset.
  • 🧾 Tarkistettu: FileNotFoundException-, IOException- ja SQLException-poikkeuksia on käsiteltävä.
  • 🧨 Kesto: ArrayIndexOutOfBounds, ArithmeticException ja NullPointerException.
  • 🛟 virhesivu / onVirhesivu: Ohjaa virheet sivulle, joka tulostaa poikkeuspinon trace.

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:

  1. Tarkistettu poikkeus
  2. Kestoaika poikkeus
  3. 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:

  1. FileNotFoundException: Tämä on valittu poikkeus (jossa se yrittää löytää tiedoston, kun tiedostoa ei löydy levyltä).
  2. IO poikkeus: Tämä on myös tarkistettu poikkeus, jos tiedoston lukemisen tai kirjoittamisen aikana tapahtuu poikkeus, niin IO-poikkeus nostetaan esiin.
  3. 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:

  1. ArrayIndexOutOfBoundsException: Tämä on ajonaikainen poikkeus, kun taulukon koko ylittää elementtejä.
  2. 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.
  3. 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ä:

  1. Virhe: Tämä virhe on heitettävien virheiden alaluokka, joka osoittaa vakavia ongelmia, joita sovellus ei pysty havaitsemaan.
  2. Instantointivirhe: Tämä virhe ilmenee, kun yritämme luoda objektin, mutta se ei onnistu.
  3. 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ävä getCause() – palauttaa poikkeuksen syyn
  • Julkinen printStackTrace() – palauttaa pinontracpoikkeuksen e.

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

Code Rivi 1: Tässä asetamme virhesivuksi guru_error.jsp, jota käytetään, kun virhe ohjataan uudelleen.

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

Code Rivi 1: Tässä asetamme isErrorPage-attribuutin arvoksi true.

Code Rivi 12: Poikkeus on luotu tiedostossa exception_example.jsp käyttämällä throw-objektia, ja poikkeus näytetään tässä, kun IsErrorPage-attribuutti on merkitty arvoon true. Käyttämällä exception-objektia (tämä on objekti, joka sallii JSP:n käyttää poikkeustietoja) yritämme tulostaa pinon.trace virheestä, joka tapahtui tiedostossa exception_example.jsp.

Kun suoritat yllä olevan koodin, saat seuraavan tulosteen:

Käsittele poikkeus JSP:ssä

lähtö:

Poikkeus on aiheutettu, ja se heitettiin tiedostosta exception_example.jsp käyttämällä ajonaikaisen poikkeuksen throw-objektia, ja saamme yllä olevan koodin. Myös guru_error.jsp-tiedostoa kutsutaan, josta Guru Tästä tiedostosta on tapahtunut poikkeus.

UKK

JSP-poikkeukset ovat tarkistettuja poikkeuksia (kuten FileNotFoundException, IOException, SQLException), ajonaikaisia ​​poikkeuksia (kuten ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) ja virheitä (kuten pinon ylivuoto ja sisäiset JVM-virheet).

errorPage-attribuutti nimeää sivun, jolle poikkeus tulisi ohjata. Kohdesivulla arvoon true asetettu isErrorPage-attribuutti antaa sille mahdollisuuden käyttää implisiittistä poikkeusobjektia ja näyttää virheen.

Implisiittinen poikkeusobjekti on Throwable-objektin ilmentymä, joka on käytettävissä vain virhesivuilla (isErrorPage=true). Se paljastaa metodeja, kuten getMessage(), getCause() ja printStack.Trace() ilmoittaakseen virheestä.

Tekoäly voi lukea pinoa trace, paikanna viallinen viiva, selitä perimmäinen syy selkokielellä ja ehdota korjausta, helpping kehittäjät ratkaisevat JSP-poikkeuksia nopeammin testauksen ja koodin tarkistuksen aikana.

Kyllä. Tekoäly voi suositella, mihin try-catch-lohkot tai errorPage-sivu lisätään, luoda uudelleenkäytettävän virhesivun ja merkitä käsittelemättömät tarkistetut poikkeukset, mikä parantaa JSP-sovellusten kestävyyttä.

Tiivistä tämä viesti seuraavasti: