thinkphp5.1 中使用自定义异常处理类进行接管
时间:2021-12-27
来源:互联网
在手机上看
手机扫描阅读
这篇文章主要介绍了thinkphp5.1 中使用自定义异常处理类进行接管,本文通过配置文件的修改和具体代码实现详细展开的讲解了如何使用,以下就是详细内容,需要的朋友可以参考下
配置文件修改
config/app.php
自定义异常接管类出处
'exception_handle' => ‘\app\common\exception\ExceptionHandle',
自定义处理异常方法
寡人的存放目录为 app/common/exception
ApiException.php
namespace app\common\exception; use Exception; class ApiException extends Exception { /** * 构造函数 */ public function __construct(array $ApiErrConst, Throwable $previous = null) { $code = $ApiErrConst[0]; $message = $ApiErrConst[1]; parent::__construct($message, $code, $previous); } }
ExceptionHandle.php
namespace app\common\exception; use Exception; use think\exception\Handle; use app\common\exception\ApiException; use app\common\err\ApiErrCode; class ExceptionHandle extends Handle { // 引入复用模块:JSON返回格式 use \app\common\traits\ResponseJson; public function render(Exception $e) { if($e instanceof ApiException) { $code = $e->getCode(); $message = $e->getMessage(); }else{ $code = $e->getCode(); if(!$code || $code < 0) { $code = ApiErrCode::ERROR_UNKNOW[0]; } $message = $e->getMessage() ? $e->getMessage() : ApiErrCode::ERROR_UNKNOW[1]; } echo $this->jsonErrorData($code,$message); //该方法在下方 // 其他错误交给系统处理 // return parent::render($e); } }
错误码文件
存放目录:app/common/err
namespace app\common\err; class ApiErrCode { /** * API通用错误码 const 定义常量 * error_code < 1000 */ const ERROR_UNKNOW = [0, "未知错误"]; const ERROR_URL = [1, "接口不存在"]; ....... }
复用模块
针对API接口返回格式
存放目录:app/common/traits
namespace app\common\traits; trait ResponseJson { /** * API接口出现业务异常时时返回 * @author Leo */ public function jsonErrorData($code,$message,$data = []) { return $this->jsonResponse($code, $message, $data); } /** * API接口请求成功时返回 * @author Leo */ public function jsonSuccessData($data = []) { return $this->jsonResponse(200, "Sucess", $data); } /** * 返回一个JSON * @author Leo */ private function jsonResponse($code,$message,$data) { $content = [ 'code' => $code, 'msg' => $message, 'data' => $data ]; return json_encode($content); } }
页面调用
// 文件头部引入 use app\common\exception\ApiException; use app\common\err\ApiErrCode; // 引入复用模块:JSON返回格式 use \app\common\traits\ResponseJson; // 示例 public function index() { throw new ApiException(ApiErrCode::ERROR_URL); // 自定义异常抛出 }
到此这篇关于thinkphp5.1 中使用自定义异常处理类进行接管的文章就介绍到这了,更多相关thinkphp5.1 自定义异常处理类内容请搜索PHP爱好者以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP爱好者!
相关阅读 更多
-
什么是CDN CDN的作用和工作原理 CDN的好处和应用场景 时间:2025-08-20
-
Linux查看系统启动项命令详解 时间:2025-08-20
-
console.log()在控制台的输出结果 console.log()不显示结果的原因 时间:2025-08-20
-
Linux查看端口占用进程的方法详解 时间:2025-08-20
-
定时任务cron表达式详解(基本结构、特殊符号语义、表达式示例) 时间:2025-08-20
-
PHP中ignore_user_abort()函数详解 时间:2025-08-19
今日更新
-
冒险之星通用礼包兑换码2025最新
阅读:18
-
仙遇奕剑灵宠怎么搭配比较好
阅读:18
-
冒险之星英雄角色装备搭配推荐
阅读:18
-
灵兽大冒险各门派法宝选择推荐
阅读:18
-
冒险之星英雄强度排名推荐
阅读:18
-
猫猫钓游记全部鱼种类钓鱼鱼饵
阅读:18
-
无限暖暖奇迹之冠巅峰赛8月下搭配推荐
阅读:18
-
剑网3梦回稻香21个结局流程达成方式攻略
阅读:18
-
杖剑传说全27食谱配方及加成属性效果
阅读:18
-
快来当领主英雄升级的顺序是什么
阅读:18