一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Thinkphp5框架異常處理操作實例分析

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

2020-06-17 14:49huangyuxin_ PHP教程

這篇文章主要介紹了Thinkphp5框架異常處理操作,結合實例形式分析了Thinkphp5框架異常處理操作原理、操作方法與相關使用技巧,需要的朋友可以參考下

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

 

異常處理

 

有時候服務端會報出我們無法感知的錯誤,TP5默認會自動渲染錯誤的形式,生產環境中這樣的形式并不是我們想要的。

 

未知錯誤

 

1.exception\Handle.php下的render方法需要覆蓋

創建ApiHandleException.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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.phpexception_handle配置項

 

已知錯誤

 

我們在判斷一個數據是否合法的時候,若不合法則拋出異常。

例如:

?
1
2
3
if($data['msg'] != 1){
  throw Exception('數據異常');
}

使用內置的異常http狀態碼始終為500

1.創建ApiException.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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改寫

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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中添加代碼

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

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/huangyuxin_/article/details/93641943

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青草欧美 | 亚州免费一级毛片 | 亚洲精品丝袜在线一区波多野结衣 | 猛吸奶水的老汉 | 99久久国产综合精品女小说 | 爱情岛论坛自拍永久入口 | 国产亚洲精品精品国产亚洲综合 | 四虎新网站 | 美女把小内内脱个精光打屁屁 | 五月色综合婷婷综合俺来也 | 国产精品九九久久一区hh | 性欧美sexvideo另类 | 亚州笫一色惰网站 | 好硬好大好浪夹得好紧h | 天美传媒影视在线免费观看 | 极品久久| 亚洲 日本 天堂 国产 在线 | 日本xxxxx高清免费观看 | 欧亚专线欧洲m码可遇不可求 | 特黄特黄一级高清免费大片 | 国产3级在线 | 亚洲26uuuu最新地址 | 日韩精品中文字幕久久 | 果冻传媒在线完整免费观 | 99精品在线 | 日本xxxxxl1820| 国产成人一区二区三区影院免费 | 国产 日韩 一区 | 日韩一本在线 | 亚洲一卡2卡三卡4卡5卡组 | 免费超级乱淫播放手机版 | 欧美一级久久久久久久大片 | 国产一区二区三区免费在线视频 | 久久视频在线视频观看天天看视频 | 亚洲精品久久久打桩机 | 狠狠婷婷综合缴情亚洲 | 亚洲AV国产福利精品在现观看 | 精品一区二区国语对白 | 涩涩漫画软件 | 亚洲青草 | 亚洲女同在线观看 |