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爱好者!
相关阅读 更多
-
核芯显卡是什么意思?核芯显卡和独立显卡有什么区别? 时间:2025-12-19 -
什么是算术逻辑单元ALU 算术逻辑单元的功能和结构 时间:2025-12-19 -
什么是视觉识别色差检测 视觉识别色差检测的原理、技术特点、应用及常用工具 时间:2025-12-19 -
什么是流量控制 流量控制和拥塞控制的区别 时间:2025-12-19 -
GPU虚拟化是什么意思 GPU虚拟化有哪三种方法 时间:2025-12-19 -
独显是什么意思 独显和集显的区别 时间:2025-12-19
今日更新
-
TikTok官网入口直达-TikTok网页版快捷登录
阅读:18
-
机构投资者进入虚拟货币市场如何影响稳定性?
阅读:18
-
派大星的梗是什么梗 揭秘海绵宝宝里最蠢萌角色的爆笑名场面
阅读:18
-
2026最新恋恋影视rosimm入口-恋恋影视官网在线免费看高清视频
阅读:18
-
海角社区2026最新登录入口-网页版在线登录地址一键直达
阅读:18
-
tiktok官网下载入口-tiktok官方下载入口
阅读:18
-
派大星是什么梗?海绵宝宝呆萌好友爆笑名场面全网疯传
阅读:18
-
比特币历史价格走势揭示当前行情趋势与投资机会
阅读:18
-
第五人格园丁实战能抵挡多少次伤害
阅读:18
-
漫蛙漫画官网极速入口-漫蛙漫画APP免费下载
阅读:18










