Làm cách nào để bắt ngoại lệ PDO trong PHP?
Xử lý ngoại lệ được sử dụng để thay đổi quy trình thực thi mã bình thường nếu xảy ra tình trạng lỗi (ngoại lệ) được chỉ định. Điều kiện này được gọi là ngoại lệ Show
Đây là điều thường xảy ra khi một ngoại lệ được kích hoạt
Chúng tôi sẽ hiển thị các phương pháp xử lý lỗi khác nhau
Ghi chú. Các ngoại lệ chỉ nên được sử dụng với các điều kiện lỗi và không được sử dụng để nhảy đến một vị trí khác trong mã tại một điểm đã chỉ định Sử dụng cơ bản các ngoại lệKhi một ngoại lệ được ném ra, mã theo sau nó sẽ không được thực thi và PHP sẽ cố gắng tìm khối "bắt" phù hợp Nếu một ngoại lệ không bị bắt, một lỗi nghiêm trọng sẽ được đưa ra với thông báo "Ngoại lệ chưa được bắt" Hãy thử ném một ngoại lệ mà không bắt nó //tạo hàm có ngoại lệ // kích hoạt ngoại lệ Đoạn mã trên sẽ gặp lỗi như thế này Lỗi nghiêm trọng. Ngoại lệ chưa được phát hiện 'Ngoại lệ' Hãy thử, ném và bắtĐể tránh lỗi từ ví dụ trên, chúng ta cần tạo mã thích hợp để xử lý ngoại lệ Mã ngoại lệ thích hợp nên bao gồm
Hãy thử kích hoạt một ngoại lệ với mã hợp lệ //tạo hàm có ngoại lệ // kích hoạt ngoại lệ trong khối "thử" // bắt ngoại lệ Đoạn mã trên sẽ gặp lỗi như thế này Thông điệp. Giá trị phải từ 1 trở xuống Ví dụ giải thíchĐoạn mã trên ném một ngoại lệ và bắt nó
Tuy nhiên, một cách để khắc phục quy tắc "mỗi lần ném phải có một lần bắt" là đặt trình xử lý ngoại lệ cấp cao nhất để xử lý các lỗi trượt qua Tạo một lớp ngoại lệ tùy chỉnhĐể tạo trình xử lý ngoại lệ tùy chỉnh, bạn phải tạo một lớp đặc biệt với các hàm có thể được gọi khi có ngoại lệ xảy ra trong PHP. Lớp phải là phần mở rộng của lớp ngoại lệ Lớp ngoại lệ tùy chỉnh kế thừa các thuộc tính từ lớp ngoại lệ của PHP và bạn có thể thêm các chức năng tùy chỉnh vào nó Hãy tạo một lớp ngoại lệ lớp customException mở rộng Ngoại lệ { $email = "ai đó@ví dụ. com"; cố gắng { bắt (customException $e) { Lớp mới là bản sao của lớp ngoại lệ cũ có thêm hàm errorMessage(). Vì nó là bản sao của lớp cũ và nó kế thừa các thuộc tính và phương thức từ lớp cũ, nên chúng ta có thể sử dụng các phương thức của lớp ngoại lệ như getLine() và getFile() và getMessage() Ví dụ giải thíchĐoạn mã trên đưa ra một ngoại lệ và bắt nó bằng một lớp ngoại lệ tùy chỉnh
Nhiều ngoại lệTập lệnh có thể sử dụng nhiều ngoại lệ để kiểm tra nhiều điều kiện Có thể sử dụng một số nếu. các khối khác, một công tắc hoặc lồng nhiều ngoại lệ. Các ngoại lệ này có thể sử dụng các lớp ngoại lệ khác nhau và trả về các thông báo lỗi khác nhau lớp customException mở rộng Ngoại lệ { $email = "ai đó@ví dụ. com"; cố gắng { bắt (customException $e) { bắt(Ngoại lệ $e) { Ví dụ giải thíchĐoạn mã trên kiểm tra hai điều kiện và đưa ra một ngoại lệ nếu bất kỳ điều kiện nào không được đáp ứng
Nếu ngoại lệ được ném thuộc về lớp customException và không có bắt customException, chỉ bắt ngoại lệ cơ sở, thì ngoại lệ sẽ được xử lý ở đó Ném lại ngoại lệĐôi khi, khi một ngoại lệ được đưa ra, bạn có thể muốn xử lý nó khác với cách thông thường. Có thể ném ngoại lệ lần thứ hai trong khối "bắt" Tập lệnh nên ẩn lỗi hệ thống khỏi người dùng. Lỗi hệ thống có thể quan trọng đối với người viết mã, nhưng không được người dùng quan tâm. Để giúp người dùng dễ dàng hơn, bạn có thể ném lại ngoại lệ bằng thông báo thân thiện với người dùng lớp customException mở rộng Ngoại lệ { $email = "ai đó@ví dụ. com"; cố gắng { bắt (customException $e) { Ví dụ giải thíchĐoạn mã trên kiểm tra xem địa chỉ email có chứa chuỗi "ví dụ" trong đó không, nếu có, ngoại lệ sẽ được ném lại
Nếu ngoại lệ không bị bắt trong khối "thử" hiện tại của nó, thì nó sẽ tìm kiếm khối bắt ở "cấp độ cao hơn" Đặt Trình xử lý ngoại lệ cấp cao nhấtHàm hàm myException($Exception) { set_Exception_handler('myException'); ném ngoại lệ mới ('Đã xảy ra ngoại lệ chưa bắt buộc'); Đầu ra của đoạn mã trên phải giống như thế này Ngoại lệ. Ngoại lệ chưa được xử lý đã xảy ra Trong đoạn mã trên không có khối "bắt". Thay vào đó, trình xử lý ngoại lệ cấp cao nhất được kích hoạt. Hàm này nên được sử dụng để bắt các ngoại lệ chưa được phát hiện Làm cách nào để kiểm tra lỗi truy vấn PDO?PDO sẽ chỉ đặt mã lỗi để bạn kiểm tra bằng cách sử dụng PDO. errorCode() và PDO. errorInfo() trên cả đối tượng câu lệnh và cơ sở dữ liệu ; . errorCode() hoặc PDOStatement. errorInfo() trên đối tượng đó.
Ngoại lệ PDO trong PHP là gì?PDOException PHP là một ngoại lệ thời gian chạy xảy ra khi có lỗi xảy ra khi sử dụng lớp PDO (Đối tượng dữ liệu PHP) hoặc các phần mở rộng có liên quan của nó . Ví dụ: ngoại lệ này có thể xảy ra trong khi xử lý các kết nối hoặc truy vấn cơ sở dữ liệu.
Làm cách nào để bắt ngoại lệ SQL trong PHP?Thử, ném và bắt . try - Hàm sử dụng ngoại lệ phải nằm trong khối "thử". Nếu ngoại lệ không kích hoạt, mã sẽ tiếp tục như bình thường. . ném - Đây là cách bạn kích hoạt một ngoại lệ. . catch - Một khối "catch" truy xuất một ngoại lệ và tạo một đối tượng chứa thông tin ngoại lệ Làm cách nào để sử dụng PDO trong PHP?Chi tiết về Phương thức Lớp PDO . Tên người dùng - Một chuỗi chứa tên người dùng của người dùng. Đối với một số trình điều khiển PDO nhất định, tham số này là tùy chọn Mật khẩu - Mật khẩu của người dùng được lưu trữ trong chuỗi này. . Tùy chọn trình điều khiển - Đây là tham số tùy chọn—một khóa=>danh sách giá trị của các tùy chọn liên kết duy nhất cho trình điều khiển |