Xử lý ngoại lệ trong JSP

⚡ Tóm tắt thông minh

Xử lý ngoại lệ trong JSP quản lý các lỗi xảy ra trong quá trình thực thi mã, tương tự như Java Khối try-catch. Ngoại lệ được chia thành ba loại: checked, runtime và error. Các trang JSP sử dụng thuộc tính errorPage và isErrorPage để chuyển hướng và hiển thị ngoại lệ.

  • ⚠️ Ngoại lệ được định nghĩa: Lỗi xảy ra trong quá trình thực thi JSP, được xử lý như sau: Java thử bắt bóng.
  • 🗂️ Ba loại: Các ngoại lệ đã kiểm tra, trong quá trình thực thi và lỗi.
  • 🧾 Đã kiểm tra: Các ngoại lệ FileNotFoundException, IOException và SQLException phải được xử lý.
  • 🧨 Thời gian chạy: Lỗi ArrayIndexOutOfBounds, ArithmeticException và NullPointerException.
  • 🛟 Trang lỗi / Trang lỗi: Chuyển hướng lỗi đến trang in ra ngăn xếp ngoại lệ. trace.

Xử lý ngoại lệ trong JSP

Ngoại lệ trong JSP là gì?

Trường hợp ngoại lệ trong JSP xảy ra khi có lỗi trong mã do nhà phát triển hoặc lỗi nội bộ từ hệ thống. Xử lý ngoại lệ trong JSP giống như trong Java nơi chúng tôi quản lý các ngoại lệ bằng cách sử dụng các khối Try Catch. Không giống như Java, cũng có những ngoại lệ trong JSP ngay cả khi không có lỗi trong mã.

Các loại ngoại lệ trong JSP

Các ngoại lệ trong JSP có ba loại:

  1. Đã kiểm tra ngoại lệ
  2. Ngoại lệ thời gian chạy
  3. Lỗi ngoại lệ

Đã kiểm tra các trường hợp ngoại lệ

Thông thường, lỗi của người dùng hoặc các vấn đề mà nhà phát triển không nhìn thấy được gọi là ngoại lệ đã kiểm tra. Một số ví dụ về ngoại lệ đã kiểm tra là:

  1. FileNotFoundException: Đây là một ngoại lệ được kiểm tra (trong đó nó cố gắng tìm một tệp khi không tìm thấy tệp đó trên đĩa).
  2. Ngoại lệ IO: Đây cũng là ngoại lệ được kiểm tra nếu có bất kỳ ngoại lệ nào xảy ra trong quá trình đọc hoặc ghi tệp thì ngoại lệ IO sẽ được nâng lên.
  3. Ngoại lệ SQL: Đây cũng là một ngoại lệ được kiểm tra khi tệp được kết nối với SQL cơ sở dữ liệu và có vấn đề với khả năng kết nối của cơ sở dữ liệu SQL thì SQLException sẽ được nâng lên

Ngoại lệ thời gian chạy

Ngoại lệ thời gian chạy là ngoại lệ mà lập trình viên có thể tránh được. Chúng bị bỏ qua tại thời điểm biên dịch. Một số ví dụ về ngoại lệ thời gian chạy là:

  1. ArrayIndexOutOfBoundsNgoại lệ: Đây là một ngoại lệ thời gian chạy khi kích thước mảng vượt quá các yếu tố.
  2. Số họcException: Đây cũng là một ngoại lệ trong thời gian chạy khi có bất kỳ phép toán nào không được phép trong điều kiện bình thường, ví dụ: chia một số cho 0 sẽ cho một ngoại lệ.
  3. Ngoại lệ NullPulum: Đây cũng là một ngoại lệ thời gian chạy được nêu ra khi một biến hoặc một đối tượng có giá trị rỗng khi chúng ta cố gắng truy cập vào những biến đó. Đây là một ngoại lệ rất phổ biến.

Các lỗi:

Vấn đề phát sinh do sự kiểm soát của người dùng hoặc lập trình viên. Nếu tràn ngăn xếp, thì lỗi có thể xảy ra. Một số ví dụ về lỗi được liệt kê dưới đây:

  1. lỗi: Lỗi này là một lớp con của lỗi có thể ném được, biểu thị các sự cố nghiêm trọng mà ứng dụng không thể nắm bắt được.
  2. Lỗi khởi tạo: Lỗi này xảy ra khi chúng tôi cố gắng khởi tạo một đối tượng nhưng không thực hiện được điều đó.
  3. Lỗi bên trong: Lỗi này xảy ra khi có lỗi xảy ra từ JVM tức là Java Máy ảo.

Ngoại lệ lỗi

Đây là một trường hợp của lớp throwable và được sử dụng trong các trang lỗi. Một số phương thức của lớp throwable là:

  • Chuỗi công khai getMessage() – trả về thông báo ngoại lệ.
  • Public throwable getCause() – trả về nguyên nhân của ngoại lệ
  • Public printStackTrace () – trả về ngăn xếptrace của ngoại lệ.

Cách xử lý ngoại lệ trong JSP

Đây là một ví dụ về cách xử lý ngoại lệ trong 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>

Giải thích mã:

Exception_example.jsp

Code Dòng 1: Ở đây chúng tôi đang đặt trang lỗi thành guru_error.jsp, trang này sẽ được sử dụng khi lỗi được chuyển hướng.

Code Dòng 15: chúng tôi đang lấy một biến num và đặt nó thành 10 và kiểm tra một điều kiện nếu num là 10 thì sẽ đưa ra Ngoại lệ thời gian chạy với thông báo là Điều kiện lỗi.

Guru_error.jsp

Code Dòng 1: Ở đây, chúng ta thiết lập thuộc tính isErrorPage thành true.

Code Dòng 12: Ngoại lệ đã được tạo ra trong exception_example.jsp bằng cách sử dụng đối tượng throw và ngoại lệ đó sẽ được hiển thị ở đây vì thuộc tính IsErrorPage được đánh dấu là true. Sử dụng đối tượng exception (đây là một đối tượng cho phép JSP truy cập dữ liệu ngoại lệ), chúng ta đang cố gắng in ra ngăn xếp.trace về lỗi đã xảy ra trong exception_example.jsp.

Khi bạn thực thi đoạn mã trên, bạn sẽ nhận được kết quả sau:

Xử lý ngoại lệ trong JSP

Đầu ra:

Ngoại lệ đã được đưa ra từ exception_example.jsp bằng cách sử dụng đối tượng throw của ngoại lệ runtime và chúng ta nhận được đoạn mã trên. Ngoài ra, guru_error.jsp cũng được gọi từ đó. Guru Đã xảy ra lỗi từ tệp này.

Câu Hỏi Thường Gặp

Các ngoại lệ JSP bao gồm các ngoại lệ được kiểm tra (như FileNotFoundException, IOException, SQLException), các ngoại lệ thời gian chạy (như ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) và các lỗi (như tràn ngăn xếp và lỗi nội bộ của JVM).

Thuộc tính errorPage chỉ định trang mà ngoại lệ cần được chuyển hướng đến. Thuộc tính isErrorPage, được đặt thành true trên trang đích đó, cho phép nó truy cập đối tượng ngầm định của ngoại lệ và hiển thị lỗi.

Đối tượng ngoại lệ ngầm định là một thể hiện của lớp Throwable, chỉ khả dụng trên các trang lỗi (isErrorPage=true). Nó cung cấp các phương thức như getMessage(), getCause() và printStack.Trace() để báo cáo lỗi.

Trí tuệ nhân tạo có thể đọc một chồng tài liệu. tracVí dụ: xác định chính xác dây chuyền sản xuất bị lỗi, giải thích nguyên nhân gốc rễ bằng ngôn ngữ dễ hiểu và đề xuất giải pháp khắc phục.ping Các nhà phát triển giải quyết các ngoại lệ JSP nhanh hơn trong quá trình kiểm thử và xem xét mã.

Đúng vậy. AI có thể đề xuất vị trí thêm các khối try-catch hoặc trang lỗi, tạo trang lỗi có thể tái sử dụng và gắn cờ các ngoại lệ đã kiểm tra chưa được xử lý, giúp cải thiện độ ổn định của các ứng dụng JSP.

Tóm tắt bài viết này với: