# 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接口安全
- 解決跨域問題
- 自定義實用功能函數