12 异常处理

前置知识

1 和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。

2 新版的异常页面显示会自动判断当前请求是json请求,如果是json请求则采用json格式的异常信息,否则按照HTML输出

 

一  异常显示 

1  异常页面的模板位置:vendor\topthink\framework\src\tpl\think_exception.tpl

2 修改异常页面路径:在config/app.php配置文件中 'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl',

3 默认的异常页面会返回 500 状态码,如果是一个 HttpException 异常则会返回HTTP的错误状态码。

 

二 异常接管

自己定义异常类  暂时还用不到

 

三 手动抛出和捕获异常

系统异常大部分的都是自动抛出和捕获的

手动抛出异常 throw new \think\Exception('异常消息',1000);

 

四 HTTP异常

public function hello(){
    throw new \think\exception\HttpException(404,'异常消息'); //抛出HTTP异常
    abort(404,'我也异常了'); //助手函数抛出HTTP异常
}

1)如果是api接口

1 现在客户端判断状态码是否正常,再进行处理

2 如果遇到错误状态码,应该自行给出错误提示。

3 部署模式下一旦抛出 HttpException异常,可以单独定义异常模板页面
'http_exception_template' => [
  // 定义404错误的模板文件地址
  404 => \think\facade\App::getAppPath() . '404.html',
  // 还可以定义其它的HTTP status
  401 => \think\facade\App::getAppPath() . '401.html',
]

http_exception_template 配置仅在部署模式下面生效。

 

posted @ 2020-11-13 22:07  棉花糖88  阅读(92)  评论(0编辑  收藏  举报