tp5中捕获异常的配置

Posted ariclee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5中捕获异常的配置相关的知识,希望对你有一定的参考价值。

首选在配置文件中加入配置如下

 

    // 异常处理handle类 留空使用 hinkexceptionHandle
    ‘exception_handle‘       => ‘\\app\\common\\exception\\Http‘,
    ‘http_exception_template‘    =>  [
        // 定义404错误的重定向页面地址
        404 =>  APP_PATH.‘view/error/404.html‘,
    ],

值得注意的是该配置文件必须是所有模块的而不是单个的模块的

目录结构图如下

 技术图片

 

 

然后在appcommonexceptionHttp.php文件中加入以下代码:

 

<?php
namespace appcommonexception;


use Exception;
use thinkexceptionHandle;
use thinkexceptionHttpException;
use thinkResponse;
class Http extends Handle
{


    public function render(Exception $e)
    {
        // 参数验证错误
        if ($e instanceof ValidateException) {
            return json($e->getError(), 422);
        }


        // 请求异常
        if ($e instanceof HttpException && request()->isAjax()) {
            return response($e->getMessage(), $e->getStatusCode());
        }


        //TODO::开发者对异常的操作
        if($e->getStatusCode()==‘404‘){
            return response($e->getMessage(), $e->getStatusCode());
        }
        //可以在此交由系统处理
        return parent::render($e);
    }


}

 

 

然后就可以在编码中捕捉异常了

try{
Db::name(‘user‘)->find();
}catch(Exception $e){
$this->error(‘执行错误‘);
}
$this->success(‘执行成功!‘);

---------------------
作者:司徒小子
来源:CSDN
原文:https://blog.csdn.net/ruoshui1748/article/details/78032733/
版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于tp5中捕获异常的配置的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot配置全局异常捕获

springboot捕获全局异常和配置多数据源

新人求教,请问Thinkphp 中怎么捕获异常,自己进行处理

TP5使用API时不可预知的内部异常

python异常处理

springaop异常通知捕获的异常还能抛出去吗