thinkphp 5.1框架解析(三):注册错误和异常处理机制

跟着 base.php 继续走,来到了注册错误和异常处理机制的代码

其实异常处理机制也没什么好讲的,只是今天没什么好分享的。又无聊,就来写一下吧

注册错误

//base.php
// 注册错误和异常处理机制
Error::register();

base.php中调用了 错误异常处理的注册函数,因为上面我们已经实现了自动注册,所以我们能直接找到Error这个类。

 public static function register()
    {
        error_reporting(E_ALL);
        set_error_handler([__CLASS__, 'appError']);
        set_exception_handler([__CLASS__, 'appException']);
        register_shutdown_function([__CLASS__, 'appShutdown']);
    }

这注册方法中,做了4件事

  • 使所以错误全部爆出
  • 设置 错误处理函数
  • 设置 异常处理函数
  • 设置程序脚本结束时最后执行的函数

于是乎就设置好了 tp5.1的注册错误异常机制。

错误处理

我们来模拟一下发生错误时的处理。 我们在、index方法中 故意调用一个不存在的方法,触发了 notie 的错误。

于是乎,我们进入了我们的错误处理函数 appError()

public static function appError($errno, $errstr, $errfile = '', $errline = 0)
    {
        $exception = new ErrorException($errno, $errstr, $errfile, $errline);

        if (error_reporting() & $errno) {
            // 将错误信息托管至 think\exception\ErrorException
            throw $exception;
        }

        self::getExceptionHandler()->report($exception);
    }

三段代码分别做3件事

  1. 保存错误信息
  2. 判断其是否开起了该错误信息的显示 error_reporting() & $errno ,如果开启了,就直接返回该错误。如果没有开启,则继续执行
  3. 先获取异常信息的处理函数,根据错误信息返回到浏览器

未完
Comming Soon

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值