set_exception_handler用法

24 篇文章 0 订阅

定义和用法

set_exception_handler() 函数设置用户自定义的异常处理函数。

该函数用于创建运行时期间的用户自己的异常处理方法。

该函数会返回旧的异常处理程序,若失败,则返回 null。

语法

set_exception_handler(exception_function)
参数 描述
error_function

必需。规定未捕获的异常发生时调用的函数。

该函数必须在调用 set_exception_handler() 函数之前定义。

这个异常处理函数需要需要一个参数,即抛出的 exception 对象。

提示和注释

提示:在这个异常处理程序被调用后,脚本会停止执行。

例子

<?php
function myException($exception)
{
echo "<b>Exception:</b> " , $exception->getMessage();
}

set_exception_handler('myException');

throw new Exception('Uncaught Exception occurred');
?>

输出:

Exception: Uncaught Exception occurred



例子:
function exception_handler($exception){
        echo "发生了未捕获的异常!/n";
        echo $exception->getMessage();    
}

    set_exception_handler('exception_handler');

    throw new Exception("-> 作为示例,故意抛出一个异常但不捕获它。/n");

    echo "这条语句不会被执行。/n";

/* 使用函数set_exception_handler()可以设置异常处理回调函数,该函数原型如下:

    string set_exception_handler(callback exception_handler)

    函数exception_handler()接受一个函数名作为参数,该函数名对应的函数称为异常处理回调函数

    它在有异常发生但无代码捕获时被自动调用。被调用之后程序立即终止。

    函数set_exception_handler()的返回值为原来的异常处理函数名或者NULL(当发生错误或者原来没有异常处理函数时) 
*/


需要注意的是:

set_exception_handler(“myException”) 不仅可以接受函数,还可以接受 类的方法(公开的静态方法 及 公开的非静态方法 都可以),但需要以 数组形式 传递,数组的第一值为“类名”,第二个参数为“方法名”,如下代码所示:

1
2
3
4
5
6
7
8
9
10
11
<?php
class  App{
     function  myException( $exception ) {
         echo  "<b>Exception:</b> "  $exception ->getMessage();
     }
}
 
set_exception_handler( array ( 'App' , 'myException' ));
 
throw  new  Exception( 'Uncaught Exception occurred' );
?>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值