thinkphp5.1 中使用自定义异常处理类进行接管
2022/3/31 8:19:40
本文主要是介绍thinkphp5.1 中使用自定义异常处理类进行接管,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这篇文章主要介绍了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 中使用自定义异常处理类进行接管的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享
- 2024-10-20fruitcake/php-cors 该怎么使用-icode9专业技术文章分享
- 2024-10-18PHP7.1可以使用哪个版本的swoole-icode9专业技术文章分享