小程序全栈学习-全局异常处理的优化
2019-02-28 本文已影响3人
Answer_ccbb
向客户端或者开发者返回异常信息是全局异常处理的重要任务,前面几篇文章代码中规定了采用Json格式返回异常信息。这种异常信息的显示方式隐藏了具体的错误信息,对客户端用户来说可以比较清楚的看到异常发生的原因 ,但是不便于服务器开发者修改服务器代码错误。
针对返回的异常信息,一个比较好的做法是,针对第一种异常(由于用户输入导致的异常)采用json格式进行返回;针对第二种异常(由于服务器代码导致的异常)采用TP5默然的方式(html页面)返回异常信息。
这就需要一种if语句来做判断,具体写法如下:
if(config('app_debug')){ //如果app_debug变量威震
return parent::render($e); //采用TP5自带的render函数进行返回,返回html页面 由于目前的类 继承了TP5的handle类,所以调用时用parent
}
else {
$this->code = 500;
$this->msg = '服务器内部错误';
$this->errorCode = 999;
$this->recordErrorLog($e);
}
这里有几天扩展的知识:
1、读取TP5设置文件中的变量的两种方式
config(‘app_debug’);
Config::get('app_debug')
2、TP5的配置文件不能用作存储变量的地方,正确的思路是将要存储的变量放在数据库或者缓存中,或者采用全局变量。