Obsługa wyjątków w JSP
⚡ Inteligentne podsumowanie
Obsługa wyjątków w JSP pozwala zarządzać błędami występującymi podczas wykonywania kodu, podobnie jak Java Bloki try-catch. Wyjątki dzielą się na trzy typy: sprawdzane, czasu wykonania i błędy. Strony JSP używają atrybutów errorPage i isErrorPage do przekierowywania i wyświetlania wyjątków.
Co to jest wyjątek w JSP?
wyjątki w JSP występują, gdy w kodzie występuje błąd programisty lub błąd wewnętrzny systemu. Obsługa wyjątków w JSP jest taka sama jak w Java gdzie zarządzamy wyjątkami za pomocą bloków Try Catch. Inaczej Java, w JSP istnieją wyjątki także wtedy, gdy w kodzie nie ma błędu.
Rodzaje wyjątków w JSP
Wyjątki w JSP są trzech typów:
- Sprawdzony wyjątek
- Wyjątek czasu wykonania
- Wyjątek błędu
Sprawdzone wyjątki
Zwykle jest to błąd użytkownika lub problemy, których nie widzi deweloper, określane jako sprawdzone wyjątki. Niektóre przykłady sprawdzonych wyjątków to:
- FileNotFoundException: Jest to sprawdzony wyjątek (w którym próbuje znaleźć plik, gdy nie można go znaleźć na dysku).
- Wyjątek we/wy: Jest to również sprawdzany wyjątek. Jeśli podczas odczytu lub zapisu pliku wystąpił jakiś wyjątek, zgłaszany jest wyjątek I/O.
- Wyjątek SQL:Jest to również sprawdzany wyjątek, gdy plik jest połączony z SQL bazy danych i występuje problem z łącznością z bazą danych SQL, zgłaszany jest wyjątek SQLException
Wyjątki środowiska wykonawczego
Wyjątki czasu wykonania to takie, których programista mógł uniknąć. Są one ignorowane w czasie kompilacji. Oto kilka przykładów wyjątków czasu wykonania:
- Wyjątek ArrayIndexOutOfBounds: Jest to wyjątek środowiska wykonawczego, gdy rozmiar tablicy przekracza Elementy.
- Wyjątek arytmetyczny:Jest to również wyjątek czasu wykonania, jeśli występują operacje matematyczne, które nie są dozwolone w normalnych warunkach, na przykład podzielenie liczby przez 0 spowoduje wyjątek.
- Wyjątek NullPointer: Jest to również wyjątek czasu wykonania, który jest zgłaszany, gdy zmienna lub obiekt ma wartość null, gdy próbujemy uzyskać do nich dostęp. Jest to bardzo częsty wyjątek.
Błędy:
Problem powstaje z powodu kontroli użytkownika lub programisty. Jeśli nastąpi przepełnienie stosu, może wystąpić błąd. Poniżej wymieniono kilka przykładów błędu:
- Błąd: Ten błąd jest podklasą zgłaszanego błędu, która wskazuje poważne problemy, których aplikacja nie jest w stanie wychwycić.
- Błąd instancji: Ten błąd występuje, gdy próbujemy utworzyć instancję obiektu, ale to się nie udaje.
- Błąd wewnętrzny: Ten błąd występuje, gdy wystąpi błąd z JVM, tj Java Maszyna wirtualna.
Wyjątki błędów
Jest to instancja klasy throwable i jest używana na stronach błędów. Niektóre metody klasy throwable to:
- Publiczny ciąg znaków getMessage() – zwraca komunikat o wyjątku.
- Publiczna możliwość rzucania getCause() – zwraca przyczynę wyjątku
- Publiczny stos wydrukówTracmi() – zwraca stostrace wyjątku.
Jak obsługiwać wyjątki w JSP
Oto przykład obsługi wyjątków w JSP:
Wyjątek_przykład.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>
Wyjaśnienie kodu:
Wyjątek_przykład.jsp
Code Linia 1: Tutaj ustawiamy stronę błędu na guru_error.jsp, która będzie używana, gdy błąd zostanie przekierowany.
Code Linia 15: bierzemy zmienną num, ustawiamy ją na 10 i sprawdzamy warunek, jeśli num wynosi 10, a następnie zgłaszamy wyjątek czasu wykonania z komunikatem jako warunek błędu.
Guru_error.jsp
Code Linia 1: Tutaj ustawiamy atrybut isErrorPage na true.
Code Linia 12: Wyjątek został zgłoszony w pliku exception_example.jsp za pomocą obiektu throw i zostanie on tutaj wyświetlony, ponieważ atrybut IsErrorPage jest oznaczony jako true. Używając obiektu exception (obiektu, który umożliwia dostęp do danych wyjątku przez stronę JSP), próbujemy wydrukować stos.trace błędu, który wystąpił w exception_example.jsp.
Po wykonaniu powyższego kodu otrzymasz następujący wynik:
Wyjście:
Wystąpił wyjątek, który został zgłoszony w pliku exception_example.jsp za pomocą throw object of runtime exception, co spowodowało powyższy kod. Wywołano również plik guru_error.jsp, z którego Guru Wystąpił wyjątek w tym pliku.


