Undtagelseshåndtering i JSP

⚡ Smart opsummering

Undtagelseshåndtering i JSP håndterer fejl, der opstår under kodeudførelse, ligesom Java try-catch-blokke. Undtagelser falder i tre typer: kontrollerede, runtime- og fejlagtige. JSP-sider bruger attributterne errorPage og isErrorPage til at omdirigere og vise undtagelser.

  • ⚠️ Undtagelse defineret: En fejl under JSP-udførelse, håndteret som Java forsøge at fange.
  • 🗂️ Tre typer: Kontrollerede undtagelser, kørsels- og fejlundtagelser.
  • 🧾 Kontrolleret: FileNotFoundException, IOException og SQLException skal håndteres.
  • 🧨 Varighed: ArrayIndexOutOfBounds, ArithmeticException og NullPointerException.
  • 🛟 fejlside / erFejlside: Omdiriger fejl til en side, der udskriver undtagelsesstakken trace.

Undtagelseshåndtering i JSP

Hvad er undtagelse i JSP?

Undtagelser i JSP opstår, når der er en fejl i koden enten af ​​udvikleren eller intern fejl fra systemet. Undtagelseshåndtering i JSP er den samme som i Java hvor vi administrerer undtagelser ved hjælp af Try Catch-blokke. I modsætning til Java, er der undtagelser i JSP, også når der ikke er nogen fejl i koden.

Typer af undtagelser i JSP

Undtagelser i JSP er af tre typer:

  1. Afkrydset undtagelse
  2. Runtime Undtagelse
  3. Fejlundtagelse

Afkrydset undtagelser

Det er normalt en brugerfejl eller problemer, som ikke ses af udvikleren, betegnes som kontrollerede undtagelser. Nogle afkrydsede undtagelseseksempler er:

  1. FileNotFoundException: Dette er en markeret undtagelse (hvor den forsøger at finde en fil, når filen ikke findes på disken).
  2. IO undtagelse: Dette er også markeret undtagelse, hvis der er en undtagelse, der er sket under læsning eller skrivning af en fil, så hæves IO-undtagelsen.
  3. SQLException: Dette er også en markeret undtagelse, når filen er forbundet med SQL database, og der er et problem med forbindelsen til SQL-databasen, så opstår SQLException

Runtime undtagelser

Runtime undtagelser er den, som programmøren kunne have undgået. De ignoreres på tidspunktet for kompilering. Nogle eksempler på Runtime-undtagelser er:

  1. ArrayIndexOutOfBoundsException: Dette er en runtime-undtagelse, når array-størrelsen overstiger elementer.
  2. Aritmetisk undtagelse: Dette er også en runtime-undtagelse, når der er nogen matematiske operationer, som ikke er tilladt under normale forhold, f.eks. vil dividering af et tal med 0 give en undtagelse.
  3. NullPointer undtagelse: Dette er også en runtime-undtagelse, som opstår, når en variabel eller et objekt er null, når vi forsøger at få adgang til det samme. Dette er en meget almindelig undtagelse.

fejl:

Problemet opstår på grund af brugerens eller programmørens kontrol. Hvis stakken løber over, kan der opstå fejl. Nogle eksempler på fejlen er angivet nedenfor:

  1. Fejl: Denne fejl er en underklasse af throwable, som indikerer alvorlige problemer, som en applikation ikke kan fange.
  2. Instantiationsfejl: Denne fejl opstår, når vi forsøger at instansiere et objekt, og det mislykkes.
  3. Intern fejl: Denne fejl opstår, når der er opstået en fejl fra JVM, dvs Java Virtual Machine.

Fejlundtagelser

Det er en forekomst af den smidbare klasse, og den bruges på fejlsider. Nogle metoder til smidbar klasse er:

  • Offentlig streng getMessage() – returnerer beskeden om undtagelsen.
  • Offentlig throwable getCause() – returnerer årsagen til undtagelsen
  • Offentlig printStackTrace() – returnerer stakkentrace af undtagelsen.

Sådan håndteres undtagelser i JSP

Her er et eksempel på, hvordan man håndterer undtagelse 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_fejl.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 af koden:

Exception_example.jsp

Code Linje 1: Her indstiller vi fejlsiden til guru_error.jsp, som vil blive brugt, når fejlen vil blive omdirigeret.

Code Linje 15: vi tager et variabelt num og sætter det til 10 og kontrollerer en betingelse, hvis num er 10, så sender vi en Runtime Exception med meddelelsen som Error Condition.

Guru_fejl.jsp

Code Linje 1: Her sætter vi attributten isErrorPage til true.

Code Linje 12: Undtagelsen er blevet genereret i exception_example.jsp ved hjælp af throw-objektet, og undtagelsen vil blive vist her, da attributten IsErrorPage er markeret som sand. Ved hjælp af exception-objektet (dette er et objekt, der tillader JSP'en at få adgang til undtagelsesdataene) forsøger vi at udskrive stakken.trace af fejlen, der opstod i exception_example.jsp.

Når du udfører ovenstående kode får du følgende output:

Håndter undtagelse i JSP

Output:

Undtagelsen er blevet genereret, som blev kastet fra exception_example.jsp ved hjælp af throw-objektet fra runtime exception, og vi får ovenstående kode. Guru_error.jsp kaldes også, hvorfra Guru Der er opstået en undtagelse fra denne fil.

Ofte Stillede Spørgsmål

JSP-undtagelser er kontrollerede undtagelser (som FileNotFoundException, IOException, SQLException), runtime-undtagelser (som ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) og fejl (som stack overflow og interne JVM-fejl).

Attributten errorPage navngiver den side, en undtagelse skal omdirigeres til. Attributten isErrorPage, der er indstillet til true på den pågældende målside, giver den adgang til det implicitte undtagelsesobjekt og viser fejlen.

Det implicitte undtagelsesobjekt er en instans af Throwable, der kun er tilgængelig på fejlsider (isErrorPage=true). Det eksponerer metoder som getMessage(), getCause() og printStack.Trace() for at rapportere fejlen.

AI kan læse en stak trace, udpege den fejlende linje, forklare den grundlæggende årsag i et letforståeligt sprog og foreslå en løsning, hjælpping Udviklere løser JSP-undtagelser hurtigere under test og kodegennemgang.

Ja. AI kan anbefale, hvor try-catch-blokke eller en errorPage skal tilføjes, generere en genanvendelig fejlside og markere ubehandlede, kontrollerede undtagelser, hvilket forbedrer robustheden af ​​JSP-applikationer.

Opsummer dette indlæg med: