1. 犀牛前端部落首页
  2. PHP百科

ThinkPHP项目中异常的分类

理解 ThinkPHP项目中异常的分类,有助于我们在全局异常处理的时候可以理清思路。

ThinkPHP项目中异常的分类
PHP

用户异常

由于用户的行为导致异常(没有通过验证器,没查询到结果)

  • 通常不需要记录日志 (如:若有异常IP大量访问,也可以做日志)
  • 需要向用户返回具体信息

服务器内部自身异常

服务器自身异常(代码错误、调用外部接口错误)

  • 通常需要记录日志
  • 不需要向客户端返回具体原因

使用技巧

自定义Handle

首先我们需要自定义全局异常处理Handle

class ExceptionHandler extends Handle
{
  public function render(Exception $ex){
   //处理异常逻辑
  }
}

将config.php中exception_handle配置成我们自定义的Handle文件。

#config 配置
exception_handle => 'app\lib\exception\ExceptionHandler'

日志相关配置

查看配置文件config下path=>LOG_PATH,查阅LOG_PATH对应的路径,重新在index.php中定义该常量路径。

:ThinkPHP常量存放路径默认位于 thinkphp->base.php 下。

define('LOG_PATH', __DIR__ . '/../log/');

全局配置

我们可以配置app_debug来设置是否显示服务器内部错误的具体信息,开发环境中我们需要显示具体信息,但是在线上版本一般情况下我们不需要告诉用户,服务器具体出了什么错。

生产环境下,必须关闭

如果开启,主要有一下两点问题:

  • 性能问题
  • 安全性问题,错误信息全部显示

读取配置文件变量信息工具函数:

config('变量名')//助手函数

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/2992.html

发表评论

登录后才能评论