PHP: set_exception_handler
Giải phóng thời gian, khai phóng năng lực
Phiên bản PHP áp dụng: PHP 5, PHP 7.
set_exception_handler() dùng để thiết lập một hàm xử lý ngoại lệ do người dùng định nghĩa.
Mô tả
callable set_exception_handler ( callable $exception_handler )
Thiết lập bộ xử lý ngoại lệ mặc định nếu một ngoại lệ nào đó không được bắt trong khối try/catch. Việc thực thi sẽ dừng lại sau khi tham số exception_handler được gọi.
Tham số
exception_handler
Tên của hàm được gọi khi không bắt được ngoại lệ. Chức năng xử lý này cần có một tham số đố đối tượng ngoại lệ được ném. Dưới đây là bộ xử lý trước PHP 7:
void handler ( Exception $ex
)
Từ PHP 7 thì phần lớn lỗi được thông báo bằng cách ném các ngoại lệ Error, bộ xử lý sẽ bắt những ngoại lệ này tốt hơn. Cả Error và Exception đều thực thi giao diện Throwable. Còn đây là bộ xử lý từ PHP 7:
void handler ( Throwable $ex )
NULL có thể được truyền thay thế cho Throwable để thiết lập lại bộ xử lý này thành trạng thái mặc dịnh của nó.
Cảnh báo
Cần lưu ý rằng việc cung cấp một kiểu Exception tường minh cho tham số $ex trong callback sẽ gặp phải vấn đề do sự thay đổi cấu trúc ngoại lệ trong PHP 7.
Giá trị trả về
Trả về tên của bộ xử lý ngoại lệ đã định nghĩa trước đó, hoặc NULL khi gặp lỗi hoặc nếu không định nghĩa bộ xử lý nào trước đó.
Changelog
Phiên bản | Mô tả |
---|---|
7.0.0 | Kiểu của tham số truyền vào exception_handler đã thay đổi từ Exception thành Throwable |
5.5.0 | Trước đó, nếu NULL được truyền thì hàm này trả về TRUE. Nó trả về bộ xử lý trước đó từ phiên bản PHP 5.5.0. |
Ví dụ:
Dưới đây là ví dụ về set_exception_handler()
<?php
function exception_handler($exception) {
echo "Ngoại lệ không được bắt: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Ngoại lệ không được bắt');
echo "Không thực thi\n";
?>
Giải phóng thời gian, khai phóng năng lực