Mục lục:
Video: Section 9 2025
Thực tế chương trình HTML5 và CSS3 là nguy hiểm. Rất nhiều thứ có thể sai lầm trong PHP. Vì vậy, cách thông minh để lập trình dữ liệu là lập trình phòng thủ . Thực hành này liên quan đến dự đoán lỗi và cố gắng giải quyết chúng một cách duyên dáng. PHP có một số kỹ thuật xử lý lỗi tiên tiến sẵn có được hoàn hảo cho nhiệm vụ.
Hãy tưởng tượng bạn đã viết một số mã như sau:
print 5/0;
Bạn có lẽ sẽ không làm điều đó, nhưng đôi khi mã xấu trôi qua. Nếu máy chủ của bạn được thiết lập để truyền các thông báo lỗi, bạn sẽ thấy một số thứ như thế này.
Xử lý ngoại lệ
Thực ra có nhiều việc xảy ra hơn lúc đầu bạn có thể đánh giá. Hành vi mặc định của nhiều cài đặt PHP là để giấu lỗi. Tuy nhiên, lỗi xảy ra, đặc biệt là nếu bạn cho phép người dùng nhập vào. Mã này liệt kê rõ ràng các lỗi cho các lỗi và báo cáo chúng bất kể cài đặt máy chủ:
thử. phpgetMessage ();} // end try? >
Dưới đây là những gì đang xảy ra:
-
Sử dụng từ khóa thử để chỉ mã nguy hiểm tiềm ẩn.
Từ khoá thử mở ra một khối mã (như vòng lặp hoặc điều kiện). Tất cả các mã giữa try and catch được xem là có khả năng nguy hiểm.
-
Đặt mã nguy hiểm vào khối try.
Bất kỳ mã nào có thể gây ra lỗi phải được đặt bên trong khối try. Mã nguy hiểm nhất thường liên quan đến những điều mà lập trình viên không thể trực tiếp kiểm soát được: truy cập vào các tệp tin bên ngoài, các thao tác trên dữ liệu do người dùng định nghĩa hoặc tiếp xúc với các chương trình và quy trình bên ngoài.
-
Sử dụng mệnh đề catch để dự đoán lỗi.
Mệnh đề catch cho biết sự kết thúc của mã nguy hiểm.
-
Cho biết loại ngoại lệ.
Tham số cho mệnh đề catch là một đối tượng loại Exception. PHP có một số trường hợp ngoại lệ được tích hợp, và thường là một thư viện hoặc bộ công cụ sẽ bao gồm các ngoại lệ mới (bạn cũng có thể tự xây dựng chúng nếu muốn).
-
Quản lý ngoại lệ.
Mệnh đề catch mở ra một khối mã khác. Đặt mã ở đây để giải quyết vấn đề (hoặc ít nhất cũng chết với một chút phong cách và ân sủng - thông báo cho người dùng biết những gì đã xảy ra trước khi xáo trộn cuộn dây này). Dòng phổ biến nhất ở đây là gọi print ($ e-> getMessage ()). Tất cả các đối tượng ngoại lệ đều có một phương thức getMessage (), và dòng này báo cáo thông báo lỗi hiện tại.
Biết khi nào bẫy lỗi cho các ngoại lệ
Nếu máy chủ của bạn được thiết lập để gỡ lỗi (vì XAMPP là mặc định), thường không cần phải thiết lập xử lý ngoại lệ bởi vì hành vi mặc định của một thiết lập gỡ lỗi là báo cáo các trường hợp ngoại lệ anyway.Có một vài lần bạn vẫn cần xử lý ngoại lệ rõ ràng:
-
Bạn đang ở trên máy chủ mà không có cài đặt gỡ lỗi: Bạn có thể không có quyền truy cập vào cấu hình máy chủ, do đó bạn không thể bật tự động báo cáo ngoại lệ. Các báo cáo ngoại lệ thủ công vẫn được thông qua.
-
Bạn muốn làm điều gì đó đặc biệt: Trình xử lý ngoại lệ tự động chỉ đơn giản báo cáo sự cố. Nếu bạn muốn làm cái gì khác (nói, sử dụng một tập tin mặc định nếu một tập tin không được tìm thấy), bạn sẽ cần một trình xử lý ngoại lệ tùy chỉnh cho tình huống đó.
-
Bạn đang làm một cái gì đó kỳ lạ: Các thư viện đặc biệt thường đi kèm với các ngoại lệ tùy chỉnh của riêng họ, và bạn sẽ cần một trình xử lý ngoại lệ để đề cập đến những tình huống này.