Erandi käsitlemine JSP-s

Mis on JSP-s erand?

Erandeid JSP-s ilmnevad siis, kui koodis on viga arendaja poolt või süsteemisisene viga. Erandite käsitlemine JSP-s on sama, mis JSP-s Java kus haldame erandeid, kasutades Try Catchi plokke. Erinevalt Java, on JSP-s erandeid ka siis, kui koodis pole viga.

JSP erandite tüübid

JSP erandeid on kolme tüüpi:

  1. Kontrollitud erand
  2. Kestusaja erand
  3. Vea erand

Kontrollitud erandid

Tavaliselt on tegemist kasutaja veaga või probleeme, mida arendaja ei näe, nimetatakse kontrollitud eranditeks. Mõned kontrollitud erandite näited on järgmised:

  1. FileNotFoundException: See on kontrollitud erand (kui see üritab faili leida, kui faili kettalt ei leitud).
  2. IO erand: seda märgitakse ka erandiks, kui faili lugemise või kirjutamise ajal ilmnes mõni erand, siis tõstetakse IO erand.
  3. SQLErand: see on ka kontrollitud erand, kui fail on ühendatud SQL andmebaasi ja SQL-andmebaasi ühenduvusega on probleeme, siis tõstatatakse SQLException

Kestusaja erandid

Käitusaja erandid on need, mida programmeerija oleks saanud vältida. Neid eiratakse koostamise ajal. Mõned käitusaja erandite näited on järgmised:

  1. ArrayIndexOutOfBoundsException: see on käitusaegne erand, kui massiivi suurus ületab elemendid.
  2. AritmeetikaErand: See on ka käitusaegne erand, kui on matemaatilisi tehteid, mis pole tavatingimustes lubatud, näiteks arvu jagamine 0-ga annab erandi.
  3. NullPointeri erand: see on ka käitusaegne erand, mis ilmneb siis, kui muutuja või objekt on null, kui proovime sellele juurde pääseda. See on väga levinud erand.

Vead:

Probleem tekib kasutaja või programmeerija kontrolli tõttu. Kui virn üle voolab, võib tekkida tõrge. Mõned näited veast on loetletud allpool:

  1. viga: see viga on visatavate alamklass, mis viitab tõsistele probleemidele, mida rakendus ei suuda tabada.
  2. Instantimise viga: see tõrge ilmneb siis, kui proovime luua objekti, kuid see ei õnnestu.
  3. Sisemine viga: see tõrge ilmneb siis, kui JVM-ist, st Java Virtuaalne masin.

Vigade erandid

See on visatava klassi eksemplar ja seda kasutatakse vealehtedel. Mõned viskamisklassi meetodid on järgmised:

  • Avalik string getMessage() – tagastab teate erandi kohta.
  • Avalik visatatavCause() – tagastab erandi põhjuse
  • Avalik printStackTrace()– tagastab erandi pinujälje.

Kuidas käsitleda erandeid JSP-s

Siin on näide, kuidas käsitleda erandit JSP-s:

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

Koodi selgitus:

Erand_example.jsp

Koodirida 1: Siin seame vealehe väärtusele guru_error.jsp, mida kasutatakse vea ümbersuunamisel.

Koodirida 15: võtame muutuja num ja määrame selle väärtuseks 10 ning kontrollime tingimust, kui arv on 10, siis esitame käitusaja erandi koos veatingimuse teatega.

Guru_error.jsp

Koodirida 1: Siin määrame isErrorPageattribute väärtuseks true.

Koodirida 12: Erand on esitatud failis extreme_example.jsp, kasutades viskaobjekti ja see erand kuvatakse siin, kuna atribuut IsErrorPage on märgitud tõeseks. Kasutades erandit (see on objekt, mis võimaldab JSP-l erandiandmetele juurde pääseda.) proovime printida failis erandi_näide.jsp ilmnenud vea pinu jälge.

Kui käivitate ülaltoodud koodi, saate järgmise väljundi:

Käsitsege erandit JSP-s

Väljund:

Tõstati erand, mis visati failist extreme_example.jsp, kasutades käitusaja erandi viskaobjekti ja saame ülaltoodud koodi. Sellest failist kutsutakse välja ka guru_error.jsp, millest Guru erand on toimunud.

kokkuvõte

  • Erandid JSP-s tekivad siis, kui koodis on viga arendaja poolt või süsteemisisene viga.
  • JSP erandeid on kolme tüüpi: kontrollitud erandid, käitusaja erandid ja vigade erandid
  • Kontrollitud erand on tavaliselt kasutaja viga või probleeme, mida arendaja ei näe, nimetatakse kontrollitud eranditeks.
  • Käitusaja erandid on need, mida programmeerija oleks saanud vältida. Neid eiratakse koostamise ajal.
  • Veaerand on visatava klassi eksemplar ja seda kasutatakse vealehtedel.