Undantagshantering i JSP

โšก Smart sammanfattning

Undantagshantering i JSP hanterar fel som uppstรฅr under kodkรถrning, ungefรคr som Java try-catch-block. Undantag delas in i tre typer: kontrollerade, runtime- och error-attribut. JSP-sidor anvรคnder attributen errorPage och isErrorPage fรถr att omdirigera och visa undantag.

  • โš ๏ธ Undantag definierat: Ett fel under JSP-kรถrning, hanterat som Java fรถrsรถka fรฅnga.
  • ๐Ÿ—‚๏ธ Tre typer: Kontrollerade undantag, kรถrtids- och felundantag.
  • ๐Ÿงพ Kontrollerade: FileNotFoundException, IOException och SQLException mรฅste hanteras.
  • ๐Ÿงจ Lรคngd: ArrayIndexOutOfBounds, ArithmeticException och NullPointerException.
  • ๐Ÿ›Ÿ felSida / รคrFelSida: Omdirigera fel till en sida som skriver ut undantagsstacken trace.

Undantagshantering i JSP

Vad รคr undantag i JSP?

undantag i JSP uppstรฅr nรคr det finns ett fel i koden antingen av utvecklaren eller internt fel frรฅn systemet. Undantagshantering i JSP รคr densamma som i Java dรคr vi hanterar undantag med hjรคlp av Try Catch-block. Till skillnad frรฅn Java, det finns undantag i JSP รคven nรคr det inte finns nรฅgot fel i koden.

Typer av undantag i JSP

Undantag i JSP รคr av tre typer:

  1. Markerat undantag
  2. Runtime undantag
  3. Fel undantag

Markerade undantag

Det รคr normalt ett anvรคndarfel eller problem som inte ses av utvecklaren kallas fรถr kontrollerade undantag. Nรฅgra exempel pรฅ markerade undantag รคr:

  1. FileNotFoundException: Detta รคr ett markerat undantag (dรคr den fรถrsรถker hitta en fil nรคr filen inte hittas pรฅ disken).
  2. IO Undantag: Detta รคr ocksรฅ markerat undantag om det finns nรฅgot undantag som intrรคffade under lรคsning eller skrivning av en fil sรฅ hรถjs IO-undantaget.
  3. SQLException: Detta รคr ocksรฅ ett markerat undantag nรคr filen รคr ansluten till SQL databasen, och det finns problem med anslutningen till SQL-databasen sรฅ hรถjs SQLException

Runtime undantag

Runtime undantag รคr de som kunde ha undvikits av programmeraren. De ignoreras vid tidpunkten fรถr sammanstรคllningen. Nรฅgra exempel pรฅ Runtime-undantag รคr:

  1. ArrayIndexOutOfBoundsException: Detta รคr ett kรถrtidsundantag nรคr arraystorleken รถverstiger element.
  2. Aritmetikundantag: Detta รคr ocksรฅ ett kรถrtidsundantag nรคr det finns nรฅgra matematiska operationer som inte รคr tillรฅtna under normala fรถrhรฅllanden, till exempel att dividera ett tal med 0 ger ett undantag.
  3. NullPointer undantag: Detta รคr ocksรฅ ett runtime-undantag som hรถjs nรคr en variabel eller ett objekt รคr null nรคr vi fรถrsรถker komma รฅt densamma. Detta รคr ett mycket vanligt undantag.

fel:

Problemet uppstรฅr pรฅ grund av anvรคndarens eller programmerarens kontroll. Om stacken svรคmmar รถver kan fel uppstรฅ. Nรฅgra exempel pรฅ felet listas nedan:

  1. Fel: Det hรคr felet รคr en underklass av throwable som indikerar allvarliga problem som ett program inte kan fรฅnga.
  2. Instantieringsfel: Det hรคr felet uppstรฅr nรคr vi fรถrsรถker instansiera ett objekt och det misslyckas med det.
  3. Internt fel: Det hรคr felet uppstรฅr nรคr det finns ett fel frรฅn JVM, dvs Java Virtuell maskin.

Undantag fรถr fel

Det รคr en instans av den kastbara klassen och den anvรคnds pรฅ felsidor. Nรฅgra metoder fรถr kastbar klass รคr:

  • Public String getMessage() โ€“ returnerar meddelandet om undantaget.
  • Offentlig kastbar getCause() โ€“ returnerar orsaken till undantaget
  • Offentlig printStackTrace() โ€“ returnerar stackentrace av undantaget.

Hur man hanterar undantag i JSP

Hรคr รคr ett exempel pรฅ hur man hanterar undantag 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_fel.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>

Fรถrklaring av koden:

Exception_example.jsp

Code Linje 1: Hรคr stรคller vi in โ€‹โ€‹felsidan till guru_error.jsp som kommer att anvรคndas nรคr felet kommer att omdirigeras.

Code Linje 15: vi tar en variabel num och stรคller in den till 10 och kontrollerar ett villkor om num รคr 10 fรถr att sedan skicka ett Runtime Exception med meddelandet som Error Condition.

Guru_fel.jsp

Code Linje 1: Hรคr stรคller vi in โ€‹โ€‹attributet isErrorPage till sant.

Code Linje 12: Undantaget har genererats i exception_example.jsp med hjรคlp av throw-objektet och det undantaget kommer att visas hรคr nรคr attributet IsErrorPage รคr markerat som sant. Med hjรคlp av exception-objektet (detta รคr ett objekt som tillรฅter JSP att komma รฅt undantagsdata) fรถrsรถker vi skriva ut stacken.trace av felet som uppstod i exception_example.jsp.

Nรคr du kรถr ovanstรฅende kod fรฅr du fรถljande utdata:

Hantera undantag i JSP

Produktion:

Undantaget har genererats, vilket utlรถstes frรฅn exception_example.jsp med hjรคlp av throw-objektet fรถr runtime-undantaget, och vi fรฅr koden ovan. Guru_error.jsp anropas ocksรฅ, varifrรฅn Guru Ett undantag har intrรคffat frรฅn den hรคr filen.

Vanliga frรฅgor

JSP-undantag รคr kontrollerade undantag (som FileNotFoundException, IOException, SQLException), runtime-undantag (som ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) och fel (som stack overflow och interna JVM-fel).

Attributet errorPage namnger sidan som ett undantag ska omdirigeras till. Attributet isErrorPage, instรคllt pรฅ true pรฅ den mรฅlsidan, lรฅter det komma รฅt det implicita undantagsobjektet och visa felet.

Det implicita undantagsobjektet รคr en instans av Throwable som endast รคr tillgรคnglig pรฅ felsidor (isErrorPage=true). Det exponerar metoder som getMessage(), getCause() och printStack.Trace() fรถr att rapportera felet.

AI kan lรคsa en stack trace, identifiera den felaktiga linjen, fรถrklara grundorsaken i ett enkelt sprรฅk och fรถreslรฅ en lรถsning, hjรคlpping utvecklare lรถser JSP-undantag snabbare under testning och kodgranskning.

Ja. AI kan rekommendera var man ska lรคgga till try-catch-block eller en errorPage, generera en รฅteranvรคndbar felsida och flagga ohanterade kontrollerade undantag, vilket fรถrbรคttrar robustheten hos JSP-applikationer.

Sammanfatta detta inlรคgg med: