Thinkphp5框架異常處理操作實例分析
本文實例講述了Thinkphp5框架異常處理操作。分享給大家供大家參考,具體如下:
異常處理
有時候服務端會報出我們無法感知的錯誤,TP5默認會自動渲染錯誤的形式,生產環(huán)境中這樣的形式并不是我們想要的。
未知錯誤
1.exception\Handle.php下的render方法需要覆蓋
創(chuàng)建ApiHandleException.php
<?php namespace app\common\lib\exception; use think\exception\Handle; class ApiHandleException extends Handle { /** * http 狀態(tài)碼 * @var int */ public $httpCode = 500; public function render(\Exception $e) { return show(0, $e->getMessage(), [], $this->httpCode); } }
2.修改config.php的exception_handle配置項
已知錯誤
我們在判斷一個數據是否合法的時候,若不合法則拋出異常。
例如:
if($data['msg'] != 1){ throw Exception('數據異常'); }
使用內置的異常http狀態(tài)碼始終為500
1.創(chuàng)建ApiException.php
<?php namespace app\common\lib\exception; use think\Exception; class ApiException extends Exception { public $message = ''; public $httpCode = 500; public $code = 0; /** * @param string $message * @param int $httpCode * @param int $code */ public function __construct($message = '', $httpCode = 0, $code = 0) { $this->httpCode = $httpCode; $this->message = $message; $this->code = $code; } }
2.對ApiHandleException.php改寫
<?php namespace app\common\lib\exception; use think\exception\Handle; class ApiHandleException extends Handle { /** * http 狀態(tài)碼 * @var int */ public $httpCode = 500; public function render(\Exception $e) { if ($e instanceof ApiException) { $this->httpCode = $e->httpCode; } return show(0, $e->getMessage(), [], $this->httpCode); } }
開發(fā)環(huán)境
在開發(fā)環(huán)境的時候依舊使用異常渲染的模式
在ApiHandleException.php中添加代碼
if(config('app_debug') == true) { return parent::render($e); }
更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
相關文章
Laravel框架實現簡單的學生信息管理平臺案例【附源碼下載】
這篇文章主要介紹了Laravel框架實現簡單的學生信息管理平臺,結合具體案例形式較為詳細的分析了基于Laravel框架的學生信息管理平臺路由與控制器相關操作技巧,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下2019-05-05PHP使用array_multisort對多個數組或多維數組進行排序
這篇文章主要介紹了PHP使用array_multisort對多個數組或多維數組進行排序,需要的朋友可以參考下2014-12-12