欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Thinkphp5框架異常處理操作實例分析

 更新時間:2020年06月03日 09:30:59   作者:huangyuxin_  
這篇文章主要介紹了Thinkphp5框架異常處理操作,結合實例形式分析了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.phpexception_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框架實現簡單的學生信息管理平臺,結合具體案例形式較為詳細的分析了基于Laravel框架的學生信息管理平臺路由與控制器相關操作技巧,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下
    2019-05-05
  • Laravel框架生命周期與原理分析

    Laravel框架生命周期與原理分析

    這篇文章主要介紹了Laravel框架生命周期與原理,結合實例形式總結分析了Laravel框架針對用戶請求響應的完整運行周期、流程、原理,需要的朋友可以參考下
    2018-06-06
  • Laravel 實現數據軟刪除功能

    Laravel 實現數據軟刪除功能

    這篇文章主要介紹了Laravel 實現數據軟刪除功能,文中給大家提到了軟刪除功能的實現方法,需要的朋友可以參考下
    2019-08-08
  • php文件上傳的簡單實例

    php文件上傳的簡單實例

    這篇文章介紹了php文件上傳的簡單實例,有需要的朋友可以參考一下
    2013-10-10
  • PHP使用array_multisort對多個數組或多維數組進行排序

    PHP使用array_multisort對多個數組或多維數組進行排序

    這篇文章主要介紹了PHP使用array_multisort對多個數組或多維數組進行排序,需要的朋友可以參考下
    2014-12-12
  • 詳談PHP文件目錄基礎操作

    詳談PHP文件目錄基礎操作

    這篇文章主要詳細介紹了PHP文件目錄基礎操作,并附上大量的操作實例,非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • laravel添加前臺跳轉成功頁面示例

    laravel添加前臺跳轉成功頁面示例

    今天小編就為大家分享一篇laravel添加前臺跳轉成功頁面示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 用PHP寫的一個冒泡排序法的函數簡單實例

    用PHP寫的一個冒泡排序法的函數簡單實例

    下面小編就為大家?guī)硪黄肞HP寫的一個冒泡排序法的函數簡單實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • PHP aes (ecb)解密后亂碼問題

    PHP aes (ecb)解密后亂碼問題

    這篇文章主要介紹了PHP aes (ecb)解密后亂碼問題的解決方法,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • Laravel中的Blade模板引擎示例詳解

    Laravel中的Blade模板引擎示例詳解

    laravel的模版引擎采用了blade模版引擎,下面這篇文章主要給大家介紹了關于Laravel中Blade模板引擎的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10

最新評論