PHP: set_exception_handler

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
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";
?>

» Tiếp: ErrorException
« Trước: Thừa kế Ngoại lệ
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!