ThinkPHP不可预知的异常捕获处理
Thinkphp6中位于app目录下有一个文件ExceptionHandle.php,这个文件就是整个项目的异常处理文件,所有程序抛出异常,均会定位到这个文件中的render方法中,你可以在这里进行全局的异常处理。
但是这个文件的作用域是整个项目,针对目前的api模块来说需要的是JSON格式的错误信息,后期开发前台的时候就不需要JSON格式的信息了,可能是一个前端小姐姐写的页面。
于是乎,就需要针对api模块新增异常处理
在api目录下增设一个Exception目录
  
上面的异常处理类文件随便起,但是要有意义
在这个类的render方法中完成异常捕获后的处理
public function render($request, Throwable $e): Response
{
    // 统一将异常以json格式返回  
    return fail($e->getMessage());
}
将异常类注册到服务容器中

<?php
use app\Request;
// 容器Provider定义文件
return [
    'think\Request'          => Request::class,
    'think\exception\Handle' => \app\api\Exception\ApiException::class
];
上面就完成了,当api模块下抛出异常时,就会主动寻找ApiException这个文件进行特殊的JSON抓换
效果

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号