长春建设局网站,行业网站维护,wordpress是可视化编辑,哪个网站做校招最近在使用webman这个框架做项目开发#xff0c;涉及到需要统一处理异常捕获。由于官网给的并不详细#xff0c;于是自己实现了一下全局异常处理类。 一、配置效果 例如#xff1a;我要在项目中统一返回json 格式数据#xff0c;并不想在业务层写try,catch逻辑。 或者在业务… 最近在使用webman这个框架做项目开发涉及到需要统一处理异常捕获。由于官网给的并不详细于是自己实现了一下全局异常处理类。 一、配置效果 例如我要在项目中统一返回json 格式数据并不想在业务层写try,catch逻辑。 或者在业务代码中不小心写出了非语法错误而导致的异常。如在项目中将被除数存在0值的情况而引发的错误。 如在控制器中写了如下代码
public function testException(){ $i 5/0;return json([code 0, msg ok]);}正常请求则报错如下 启用自定义异常后则提示如下:
二、配置方法
1、新建 app/exception/ApiException.php
?php
/*** Created by PhpStorm.* User: Administrator* Date: 2024-03-22* Time: 13:30*/
namespace app\exception;use Webman\Exception\ExceptionHandler;
use Webman\Http\Request;
use Webman\Http\Response;
use Throwable;class ApiException extends ExceptionHandler
{public function render(Request $request, Throwable $e): Response{// 处理http 异常 if ($e instanceof \HttpException) {return json([code0,msghttp请求失败:.$e-getMessage(),data[],url,wait3]);}// 可以继续处理其他异常 // .........return json([code0,msg发生了异常:.$e-getMessage(),data[],url,wait3]);}
}2、启用自定义异常处理类 配置 config/exception.php 如下
?phpreturn [ app\exception\ApiException::class,
];如果您需要在其他插件下启用此异常处理类只需在插件目录下的 config/exception.php 中启用上面的异常处理类即可。