14.2.异常处理

异常处理

错误报告设置

define('APP_DEBUG'          ,true);
define('APP_ERROR_LEVEL'    ,E_ALL ^E_NOTICE);

if(defined('APP_ERROR_LEVEL')){
    //自定义报告等级:define('APP_ERROR_LEVEL',E_ALL ^ E_NOTICE);
    error_reporting(APP_ERROR_LEVEL);
}else{
    error_reporting(E_ALL ^ E_NOTICE);
}
//错误报告等级,后面的设置会覆盖前面的设置
if($debug){
    //直接在窗口显示错误显示
    @ini_set("display_errors","On");
}else{
    //保存到服务器日志的错误等级
    //error_reporting(E_ALL ^ E_NOTICE);
    //关闭在窗口显示错误显示
    @ini_set("display_errors","Off");
}

异常处理

\qing\exception\ExceptionHandler
/**
 * 调试异常信息
 * - 和APP_DEBUG联合确认是否显示调试信息
 *
 * @var string
 */
public $debug=false;

调试模式/DEBUG模式/开发模式

local.php/本地环境配置

define('APP_DEBUG',true);

//异常处理器
'exception'=>
[
    'debug'=>true
],

images/exception.png

生产模式/线上模式

main.php/主环境配置

define('APP_DEBUG',false);

//异常处理器
'exception'=>
[
    'debug'=>false
],

images/exception-local.png

第三方异常处理器组件

异常的异常:异常处理器内抛出异常