主頁(yè) > 知識(shí)庫(kù) > Thinkphp5框架異常處理操作實(shí)例分析

Thinkphp5框架異常處理操作實(shí)例分析

熱門(mén)標(biāo)簽:Linux服務(wù)器 服務(wù)器配置 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 電子圍欄 阿里云 科大訊飛語(yǔ)音識(shí)別系統(tǒng)

本文實(shí)例講述了Thinkphp5框架異常處理操作。分享給大家供大家參考,具體如下:

異常處理

有時(shí)候服務(wù)端會(huì)報(bào)出我們無(wú)法感知的錯(cuò)誤,TP5默認(rèn)會(huì)自動(dòng)渲染錯(cuò)誤的形式,生產(chǎn)環(huán)境中這樣的形式并不是我們想要的。

未知錯(cuò)誤

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配置項(xiàng)

已知錯(cuò)誤

我們?cè)谂袛嘁粋€(gè)數(shù)據(jù)是否合法的時(shí)候,若不合法則拋出異常。

例如:

    if($data['msg'] != 1){
      throw Exception('數(shù)據(jù)異常');
    }

使用內(nèi)置的異常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.對(duì)ApiHandleException.php改寫(xiě)

?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);
  }
}

開(kāi)發(fā)環(huán)境

在開(kāi)發(fā)環(huán)境的時(shí)候依舊使用異常渲染的模式

ApiHandleException.php中添加代碼

    if(config('app_debug') == true) {
      return parent::render($e);
    }

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • 詳解Docker 下開(kāi)發(fā) hyperf 完整使用示例
  • PhpStorm 如何優(yōu)雅的調(diào)試Hyperf的方法步驟
  • php框架知識(shí)點(diǎn)的整理和補(bǔ)充
  • php中Workerman框架實(shí)例講解
  • 淺談php常用的7大框架的優(yōu)缺點(diǎn)
  • php框架CI(codeigniter)自動(dòng)加載與自主創(chuàng)建對(duì)象操作實(shí)例分析
  • ThinkPHP5框架中使用JWT的方法示例
  • Thinkphp5框架中引入Markdown編輯器操作示例
  • 淺談減少Hyperf框架的掃描時(shí)間

標(biāo)簽:萍鄉(xiāng) 衡水 蚌埠 廣元 江蘇 衢州 棗莊 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Thinkphp5框架異常處理操作實(shí)例分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266