Unntakshåndtering i JSP

⚡ Smart oppsummering

Unntakshåndtering i JSP håndterer feil som oppstår under kodekjøring, på samme måte som Java try-catch-blokker. Unntak faller inn i tre typer: kontrollerte, kjøretids- og feilkoder. JSP-sider bruker attributtene errorPage og isErrorPage for å omdirigere og vise unntak.

  • ⚠️ Unntak definert: En feil under JSP-kjøring, håndtert som Java prøve-fange.
  • 🗂️ Tre typer: Kontrollerte unntak, kjøretids- og feilunntak.
  • 🧾 Avkrysset: FileNotFoundException, IOException og SQLException må håndteres.
  • 🧨 Runtime: ArrayIndexOutOfBounds, ArithmeticException og NullPointerException.
  • 🛟 errorSide / isErrorSide: Omdiriger feil til en side som skriver ut unntaksstakken trace.

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 kastbar getCause() – returnerer årsak til unntaket
  • Offentlig printStackTrace() – returnerer stakkentrace av 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_feil.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

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

Code Linje 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_feil.jsp

Code Linje 1: Her setter vi isErrorPage-attributtet til true.

Code Linje 12: Unntaket har blitt generert i exception_example.jsp ved hjelp av throw-objektet, og unntaket vil bli vist her, da IsErrorPage-attributtet er merket som sant. Ved å bruke exception-objektet (dette er et objekt som tillater at unntaksdataene blir tilgjengelige for JSP-en) prøver vi å skrive ut stacken.trace av feilen som oppsto i exception_example.jsp.

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

Håndter unntak i JSP

Utgang:

Unntaket som ble kastet fra exception_example.jsp ved hjelp av throw-objektet til runtime exception er blitt reist, og vi får koden ovenfor. Guru_error.jsp kalles også fra hvilket Guru Det har oppstått et unntak fra denne filen.

Spørsmål og svar

JSP-unntak er kontrollerte unntak (som FileNotFoundException, IOException, SQLEException), kjøretidsunntak (som ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) og feil (som stakkoverløp og interne JVM-feil).

errorPage-attributtet navngir siden et unntak skal omdirigeres til. isErrorPage-attributtet, satt til true på den målsiden, lar det få tilgang til det implisitte unntaksobjektet og vise feilen.

Det implisitte unntaksobjektet er en instans av Throwable som bare er tilgjengelig på feilsider (isErrorPage=true). Det eksponerer metoder som getMessage(), getCause() og printStack.Trace() for å rapportere feilen.

AI kan lese en stabel trace, identifiser den feilende linjen, forklar den underliggende årsaken i et enkelt språk og foreslå en løsning, hjelpping utviklere løser JSP-unntak raskere under testing og kodegjennomgang.

Ja. AI kan anbefale hvor man skal legge til try-catch-blokker eller en errorPage, generere en gjenbrukbar feilside og flagge ubehandlede, kontrollerte unntak, noe som forbedrer robustheten til JSP-applikasjoner.

Oppsummer dette innlegget med: