PHP

set_exception_handler

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler - 设置用户定义的异常处理函数

描述

callable set_exception_handler ( callable $exception_handler )

如果在 try / catch 0块中未捕获到异常,则设置默认异常处理程序。exception_handler被调用后执行将停止。

参数

exception_handler

未捕获的异常发生时要调用的函数的名称。这个处理函数需要接受一个参数,这个参数是抛出的异常对象。这是 0PHP 7之前的处理程序签名:

void handler ( Exception $ex )

自PHP 7以来,大多数错误都是通过抛出错误异常来报告的,这些异常也会被处理程序捕获。错误和异常实现 Throwable 接口。这是自 PHP 7 0以来的处理程序签名:

void handler ( Throwable $ex )

NULL 可能会传递,以重置此处理程序为其默认状态。

警告

请注意,为ex回调中的参数提供明确的 Exception 类型提示将导致 0PHP 7中更改的异常层次结构问题。

返回值

返回以前定义的异常处理程序的名称,或者NULL出错。如果没有定义以前的处理程序,NULL也会返回。

更新日志

描述
7.0.0传递到 exception_handler 的参数类型已从 Exception 更改为 Throwable
5.5.0以前,如果传递 NULL,那么这个函数返回 0TRUE。它从 PHP 5.5.0开始返回以前的处理程序。

例子

示例#1 set_exception_handler()示例

<?php function exception_handler($exception) {   echo "Uncaught exception: " , $exception->getMessage(), "\n"; } set_exception_handler('exception_handler' throw new Exception('Uncaught Exception' echo "Not Executed\n"; ?>

  • restore_exception_handler() - 恢复先前定义的异常处理函数

  • restore_error_handler() - 恢复以前的错误处理函数

  • error_reporting() - 设置报告哪些 PHP 0错误

  • 有关回调类型的信息

  • PHP 5 Exceptions

← set_error_handler

trigger_error →