# API接口中的异常处理
>[success]在API接口的开发过程中,使用TP自带的异常处理机制,可能并不能满足实际需求。
>TP默认是直接抛出异常,而API接口通常返回的是json数据格式。所以需要对异常类进行重写。
## 重写异常处理的`render`方法
### 重写异常处理类
~~~php
<?php
namespace app\common\lib\exception;
use think\exception\Handle;
class ApiExceptionHandle extends Handle
{
private $httpCode = 400;
public function render(\Exception $e)
{
if(config("app_debug")==true){
return parent::render($e);
}
if($e instanceof ApiException){
$this->httpCode = $e->httpCode;
}
$data = [
"code"=>0,
"msg"=>$e->getMessage(),
'data'=>[]
];
return json($data,$this->httpCode);
}
}
~~~
### 重写内部错误异常处理
~~~
<?php
namespace app\common\lib\exception;
use think\Exception;
class ApiException extends Exception
{
public $message="";
public $httpCode=500;
public $code=0;
public function __construct($message = '',$httpCode=0,$code=0)
{
$this->message = $message;
$this->httpCode = $httpCode;
$this->code =$code;
}
}
~~~
>[danger]重写异常类之后,需要在配置文件中,配置成自定义的异常类
~~~
// 异常处理handle类 留空使用 \think\exception\Handle
'exception_handle' => 'app\common\lib\exception\ApiExceptionHandle',
~~~
- 前言
- PHP获取服务器信息
- PHP中的常用函数-新手必备知识
- 日期时间相关的函数
- 时区设置
- time函数
- strtotime 时间戳
- date函数
- mktime函数
- 联合使用 date() 和 mktime()
- PHP数据类型相关的函数
- PHP数组相关的函数
- array函数
- 数组的排序
- sort()和rsort()函数
- asort()和arsort()函数
- ksort()和krsort()函数
- array_multisort()函数
- array_reverse函数
- 数组的遍历
- 数组中新增和删除元素
- 数组头部插入和删除元素
- 数组尾部插入和删除元素
- 删除数组中重复的元素
- 删除数组中指定的元素
- 数组的合并
- 随机/打乱已知数组
- range函数
- 数组去除重复
- PHP常用功能函数
- URL地址处理函数
- post/get请求
- PHP字符串相关的函数
- PHP文件系统
- PHP正则表达式
- 正则表达式语法规则
- POSIX扩展的正则表达式函数
- 查找字串函数
- 替换字符串函数
- Perl兼容的正则表达式函数
- PHP中类的应用
- 中文编码
- 关于stdClass
- 变量相关函数
- unset
- PHP数值相关的函数
- 数值取整
- 开发工具与开发环境使用技巧
- sublime
- 常用插件
- Atom
- 常用插件
- 常见问题
- Visual Studio Code
- vscode常用插件
- 编程推荐字体
- MAC下开发常识
- MAC下的常用设置
- MAC下的常用开发工具
- MAC下XAMMP的常见问题
- Apache配置基础
- PhpStrom
- php中的常见问题
- 文件上传相关问题
- API接口中常见问题
- 关于缓冲区问题
- PHP中注意事项
- 条件判断
- PHP文件管理模块
- 文件管理源码
- 文件管理的常用函数
- 文件管理中文乱码处理
- 自定义功能函数
- 文件下载
- PHP常用头信息定义汇总
- 常见PHP网页木马
- 加密算法
- 1. Base58可逆加密
- 2. AES加密/解密
- mysql数据库操作
- 命令行操作Mysql常用令行-查询
- 命令行操作Mysql常用令行-操作
- Mysql使用中的技巧
- 在线数据库管理中常用命令
- sql show命令
- mysql数据库的备份与恢复
- 二进制日志介绍
- 二进制日志常用命令
- ThinkPHP
- 数据迁移
- 常见问题
- 验证码问题
- API接口中的异常处理
- API接口安全
- 解决跨域问题
- 自定义实用功能函数