Unntakshåndtering i JSP

Hva er unntak i JSP?

unntak i JSP oppstår når det er en feil i koden enten av utvikleren eller intern feil fra systemet. Unntakshåndtering i JSP er den samme som i Java hvor vi administrerer unntak ved hjelp av Try Catch-blokker. I motsetning til Java, det er unntak i JSP også når det ikke er noen feil i koden.

Typer unntak i JSP

Unntak i JSP er av tre typer:

  1. Merket av for unntak
  2. Runtime Unntak
  3. Feil unntak

Avmerket unntak

Det er normalt en brukerfeil eller problemer som ikke blir sett av utvikleren, kalles sjekkede unntak. Noen sjekkede unntakseksempler er:

  1. FileNotFoundException: Dette er et avkrysset unntak (der den prøver å finne en fil når filen ikke finnes på disken).
  2. IO-unntak: Dette er også sjekket unntak hvis det er et unntak som oppstod under lesing eller skriving av en fil, så heves IO-unntaket.
  3. SQLException: Dette er også et avkrysset unntak når filen er koblet til SQL database, og det er et problem med tilkoblingen til SQL-databasen, så oppstår SQLException

Kjøretidsunntak

Unntak fra kjøretid er det som kunne ha unngått av programmereren. De blir ignorert på tidspunktet for kompilering. Noen Runtime-unntakseksempler er:

  1. ArrayIndexOutOfBoundsException: Dette er et kjøretidsunntak når matrisestørrelsen overskrider elementer.
  2. Aritmetisk unntak: Dette er også et kjøretidsunntak når det er noen matematiske operasjoner, som ikke er tillatt under normale forhold, for eksempel å dele et tall med 0 vil gi et unntak.
  3. NullPointer-unntak: Dette er også et kjøretidsunntak som oppstår når en variabel eller et objekt er null når vi prøver å få tilgang til det samme. Dette er et veldig vanlig unntak.

feil:

Problemet oppstår på grunn av kontrollen til brukeren eller programmereren. Hvis stabelen renner over, kan det oppstå feil. Noen eksempler på feilen er oppført nedenfor:

  1. Feil: Denne feilen er en underklasse av throwable som indikerer alvorlige problemer som en applikasjon ikke kan fange.
  2. Instantiasjonsfeil: Denne feilen oppstår når vi prøver å instansiere et objekt, og det ikke klarer det.
  3. Intern feil: Denne feilen oppstår når det har oppstått en feil fra JVM, dvs Java Virtuell maskin.

Feilunntak

Det er en forekomst av den kastbare klassen, og den brukes på feilsider. Noen metoder for kastbar klasse er:

  • Offentlig streng getMessage() – returnerer meldingen om unntaket.
  • Offentlig throwablegetCause() – returnerer årsak til unntaket
  • Offentlig printStackTrace()– returnerer stacktrace for unntaket.

Hvordan håndtere unntak i JSP

Her er et eksempel på hvordan du håndterer unntak i JSP:

Exception_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>

Forklaring av koden:

Exception_example.jsp

Kodelinje 1: Her setter vi feilsiden til guru_error.jsp som vil bli brukt når feilen blir omdirigert.

Kodelinje 15: vi tar en variabel num og setter den til 10 og sjekker en betingelse hvis num er 10 for deretter å kaste et Runtime Exception med meldingen som Error Condition.

Guru_error.jsp

Kodelinje 1: Her setter vi isErrorPageattribute til true.

Kodelinje 12: Unntaket har blitt reist i exception_example.jsp ved å bruke throw-objektet, og det unntaket vil vises her som IsErrorPage-attributtet er merket som sant. Ved å bruke unntaket (dette er et objekt som lar unntaksdataene få tilgang til av JSP.) objektet prøver vi å skrive ut stacktrace av feilen som oppstod i exception_example.jsp.

Når du kjører koden ovenfor får du følgende utgang:

Håndter unntak i JSP

Utgang:

Unntaket har blitt reist som ble kastet fra exception_example.jsp ved å bruke throw-objektet for runtime-unntaket, og vi får koden ovenfor. Også guru_error.jsp kalles som Guru Exception har oppstått fra denne filen.

Sammendrag

  • Unntak i JSP forekommer når det er en feil i koden enten av utvikleren eller intern feil fra systemet.
  • Unntak i JSP er av tre typer: Kontrollerte unntak, kjøretidsunntak og feilunntak
  • Kontrollert unntak er normalt en brukerfeil eller problemer som ikke er sett av utvikleren, kalles sjekkede unntak.
  • Unntak fra kjøretid er det som kunne ha unngått av programmereren. De blir ignorert på tidspunktet for kompilering.
  • Feilunntak er en forekomst av den kastbare klassen, og den brukes på feilsider.