您好,登錄后才能下訂單哦!
本篇內容介紹了“Thinkphp5框架異常情況如何處理”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
本文實例講述了Thinkphp5框架異常處理操作。分享給大家供大家參考,具體如下:
有時候服務端會報出我們無法感知的錯誤,TP5默認會自動渲染錯誤的形式,生產環境中這樣的形式并不是我們想要的。
1.exception\Handle.php下的render方法需要覆蓋
創建ApiHandleException.php
<?php namespace app\common\lib\exception; use think\exception\Handle; class ApiHandleException extends Handle { /** * http 狀態碼 * @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狀態碼始終為500
1.創建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 狀態碼 * @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); } }
在開發環境的時候依舊使用異常渲染的模式
在ApiHandleException.php中添加代碼
if(config('app_debug') == true) { return parent::render($e); }
“Thinkphp5框架異常情況如何處理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。