Thinkphp的致命错误捕获流程

1. 程序start的时候注册脚本结束时的回调函数:

register_shutdown_function('Think\Think::fatalError');

2. 通过error_get_last()获取最后一次发生的错误信息

    static public function fatalError() {
        Log::save();
        if ($e = error_get_last()) {
            switch($e['type']){
              case E_ERROR:
              case E_PARSE:
              case E_CORE_ERROR:
              case E_COMPILE_ERROR:
              case E_USER_ERROR:  
                ob_end_clean();
                self::halt($e);
                break;
            }
        }
    }

3. 通过halt格式化错误信息输出

posted @ 2016-07-07 10:51  smismile  阅读(1648)  评论(0编辑  收藏  举报