亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

關(guān)于ThinkPHP中的異常處理詳解_php實例

2020-03-22 20:31:39
字體:
供稿:網(wǎng)友
和PHP默認的異常處理不同,ThinkPHP拋出的不是單純的錯誤信息,而是一個人性化的錯誤頁面,下面這篇文章主要給大家介紹了關(guān)于ThinkPHP中異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

什么是異常

從更加廣泛的角度來看,異常包含兩個方面,一方面是程序執(zhí)行時由于語法、運行時錯誤等導致的異常,一方面時沒有給予正確的反饋,如客戶端要查詢某個產(chǎn)品,沒有查詢到,我認為這也屬于異常的一種。

第一種異常TP框架本身會在頁面中輸出錯誤信息,但是第二種異常則一般不會輸出任何信息,所以非常不方便調(diào)試。

本文將詳細介紹關(guān)于ThinkPHP異常處理的相關(guān)內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

前提環(huán)境

現(xiàn)在 PHP 在很多時候是為前端提供接口,所以我們的異常處理也基于這一點進行處理。

在開發(fā)階段,TP 原有的異常處理是在頁面中輸出異常信息,這一點能夠滿足需求,但在生產(chǎn)環(huán)境中,則需要以其他方式處理異常。

本文都是針對生產(chǎn)環(huán)境的異常處理

AOP 編程

現(xiàn)在在很多語言中,都非常流行 AOP 編程思想,即面向切面編程思想,通俗的說,就是用統(tǒng)一的方式處理問題,而不是用相同的方式分別處理多個問題,對于異常處理來說,就是定義統(tǒng)一的異常信息,用統(tǒng)一的方式處理

大致思路

自定義異常處理類,重寫默認異常處理類的 render 方法,然后配置使用自定義異常處理類處理所有異常

代碼實現(xiàn)

在根目錄下創(chuàng)建目錄 exception,在其下創(chuàng)建ExceptionHandle.php,此類要繼承 handle 類

html' target='_blank'>class ExceptionHandler extends Handle

創(chuàng)建幾個屬性,用于定義異常信息

// http 錯誤碼 private $code; // 自定義異常信息 private $msg; // 自定義錯誤碼 private $errorCode;

覆蓋 Handle 類中的render 方法,當我們在代碼中使用 throw new Exception() 方式拋出異常信息時,其實就是調(diào)用了 render 方法,所以我們要重寫此方法,以返回我們自己的信息

public function render(Exception $ex)  return json([ msg = 自定義異常信息 ]); nbsp; }

下面新建控制器 Product,添加方法,進行測試

public function getProduct($id)  try{  3/0;  catch(Exception $ex){  throw $ex;  }

然后添加如下路由

Route::get( product/:id , api/v1.Product/getProduct 

輸入如下url 測試

http://z.cn/product/2

頁面輸出結(jié)果如下

可見,其并沒有執(zhí)行自定義異常處理函數(shù)。

使用自定義的異常處理

在 config.php 中修改如下配置

// 異常處理handle類 留空使用 /think/exception/Handle  exception_handle = app/lib/exception/ExceptionHandler ,

然后再運行

自定義異常處理類

一類異常是用戶行為導致的異常,比如沒有查詢到符合條件的數(shù)據(jù)(從另一個角度來說,這其實不算異常),一類錯誤是運行時錯誤。而用戶導致的異常可能分為很多種,所以需要自定義相關(guān)的類。

首先定義一個父類

class BaseException extends Exception  //http 狀態(tài)碼  public $code; //錯誤具體消息  public $msg; //自定義錯誤碼  public $errorCode;  //構(gòu)造函數(shù)用于接收傳入的異常信息,并初始化類中的屬性  public function __construct($params)  if (!is_array($params)) {  return;  if (array_key_exists( code , $params)) {  $this- code = $params[ code  if (array_key_exists( msg , $params)) {  $this- msg = $params[ msg  if (array_key_exists( errorCode , $params)) {  $this- errorCode = $params[ errorCode }

再定義一個處理找不到產(chǎn)品信息的異常處理類,用來重寫父類中的各個屬性,而且這個類中的屬性信息也可能會被修改,如 msg

class ProductNotFoundException extends BaseException  //http 狀態(tài)碼  public $code = 404; //錯誤具體消息  public $msg = 請求的產(chǎn)品不存在 //自定義錯誤碼  public $errorCode = 40000; }

處理不同異常

在 render 方法中,根據(jù)異常的不同分別處理

//分別處理兩種不容類型異常:1、用戶錯誤 2.代碼與運行時錯誤  if ($ex instanceof BaseException) {  } else {  }

說明:在 throw 異常時,會執(zhí)行 render 函數(shù),同時會將拋出的異常對象復制給參數(shù) $ex,所以可以根據(jù)此參數(shù)判斷異常類型

現(xiàn)在的關(guān)鍵是生產(chǎn)環(huán)境,所以希望返回的異常信息,前端人員能夠看懂,而不是像上面那樣在頁面中輸出錯誤信息,還包括堆棧信息等。

那么前前端賀后端人員都能夠看懂的信息一定是 json(當然也可以是xml)了,修改 render 方法

if ($ex instanceof BaseException) {  $this- code = $ex- code;  $this- msg = $ex-  $this- errorCode = $ex- errorCode;  } else { //這里是在運行時產(chǎn)生的各種異常,所以無法準確輸出異常信息,所以只能統(tǒng)一輸出是服務(wù)器錯誤信息  $this- code = 500;  $this- msg = 服務(wù)器內(nèi)部錯誤  $this- errorCode = 999;  }

然后以 json 格式返回錯誤信息

$result = [  msg = $this- msg,  error_code = $this- errorCode,  request_url = request()- url()  return json($result,$this- code);

至此,全局的異常處理就編寫好了,下面在 product.php 中編碼進行測試

public function getProduct($id)  //處理程序運行時錯誤  /*try{  3/0;  catch(Exception $ex){  throw $ex;  }*/  //處理用戶行為產(chǎn)生的錯誤  $error=[  msg = 沒有找到合適的產(chǎn)品  $ex=new ProductNotFoundException($error);  throw $ex;  }

提示:生產(chǎn)環(huán)境不要忘了將 app_debug 修改為 false

總結(jié)

您可能感興趣的文章:

PHP7基于curl實現(xiàn)的上傳圖片功能php技巧

PHP區(qū)塊查詢實現(xiàn)方法分析php技巧

PHP5.0~5.6 各版本兼容cURL文件上傳功能實例分析php技巧






以上就是關(guān)于ThinkPHP中的異常處理詳解_php實例的詳細內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
性欧美videos另类喷潮| 国产激情综合| 可以免费看污视频的网站在线| 国产精品伦一区二区| 春意影院免费入口| 欧美色精品天天在线观看视频| www.嫩草免费在线观看| 好看的日韩精品视频在线| 国产欧美日韩中文字幕在线| 午夜精品av| 亚洲美女av在线播放| 中文字幕在线免费看| 亚洲精品在线影院| a免费在线观看| 欧美日韩亚洲系列| 国产一区二区三区天码| 717影院理论午夜伦不卡久久| 国产福利电影在线播放| 国产av人人夜夜澡人人爽麻豆| 免费成人黄色网址| 国产精品高潮呻吟久久av野狼| 欧美人体视频| 国产免费高清av| 91国产福利在线| 黑人精品视频| 迷人的保姆韩国| 综合久久婷婷| 最近2019中文字幕大全第二页| 国产一区二区自拍视频| 可以免费观看av毛片| 久久99九九| 欧美曰成人黄网| 亚洲欧美日韩网站| 亚洲电影中文字幕在线观看| 欧美日本在线视频中文字字幕| 91video| 884aa四虎免费影库4h| 国产亚洲毛片在线| 91精品视频免费在线观看| 欧美日韩三级| 亚洲影院在线观看| 在线 亚洲欧美在线综合一区| 黄色在线一区| 1024免费在线视频| 国产精品久久久久免费a∨大胸| 久久精品一级| 国产日韩欧美综合| 日韩中文在线字幕| 一区二区三区四区在线看| 蜜桃在线一区二区三区| 国产99久久九九精品无码| 一级黄色高清视频| 精品国产一区二区三区不卡蜜臂| 精品视频在线导航| 波多野结衣视频一区| brazzers欧美精品| 欧美va亚洲va日韩∨a综合色| 免费一级suv好看的国产网站| 免费看污片的软件| 亚洲精品视频在线免费| 亚洲春色在线| 亚洲线精品久久一区二区三区| 国产高清精品网站| 国产一区二区不卡视频| 狠狠躁夜夜躁人人爽超碰91| 欧美日韩一卡二卡| 日韩在线高清视频| 国产欧美精品在线观看| 亚洲精品午夜国产va久久成人| 无码h肉动漫在线观看| 国产日韩av网站| 亚洲国产精久久久久久| 国产嫩草在线观看| 91欧美精品午夜性色福利在线| 伊人青青综合网站| 亚洲一区二区三区四区电影| 自拍视频一区二区| 狠狠色综合色综合网络| 福利欧美精品在线| 美女黄色片网站| 精人妻一区二区三区| 韩国三级电影一区二区| 樱花草www在线观看| 亚洲欧洲制服丝袜| 在线看片免费人成视久网| 色综合导航网站| 亚洲免费观看高清在线观看| 波多野结衣在线观看一区二区| 国产精品9191| 国产亚洲精品网站| 久久精品国产亚洲AV无码男同| 午夜小视频免费| 欧美精品制服第一页| 国产黑人绿帽在线第一区| 亚洲欧美综合一区| 伊人影院综合网| 久久亚洲国产精品日日av夜夜| 男女激情网站| gogogo免费视频观看亚洲一| 来吧亚洲综合网| 亚洲国产私拍精品国模在线观看| 国产成人精品综合在线观看| 欧美在线一级视频| 麻豆视频免费在线播放| av动漫在线看| 欧美三区免费完整视频在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 欧美夫妻性生活| 午夜精品国产精品大乳美女| 欧美二区三区在线| 国产在线www| 国产精品人人爽人人做我的可爱| 日韩欧美二区三区| 国产suv精品一区| 思思99热久久精品在线6| 日韩毛片免费观看| 国产精品日韩精品欧美在线| 天堂√中文最新版在线| 国产精品腿扒开做爽爽爽挤奶网站| 鲁大师影院一区二区三区| 日本精品视频一区| 亚洲第一色av| 中文在线字幕在线观看| 国产视频精品视频| 久久久久亚洲av无码专区体验| 欧美精品在线极品| 国产福利电影在线观看| 成人午夜电影网站| p色视频免费在线观看| 亚洲精品高清在线观看| 在线免费av播放| 午夜视频在线观看韩国| 国产亚洲xxx| 国产精品免费视频一区二区三区| 麻豆精品传媒视频观看| 亚洲国产精华液网站w| 亚洲精品人妻无码| 亚洲国产视频网站| 久久久国产精品午夜一区ai换脸| 在线观看国产精品日韩av| 岛国毛片在线播放| 亚洲日本韩国一区| 欧美作爱福利免费观看视频| 欧美激情一区二区久久久| 亚洲国产成人不卡| yellow中文字幕久久| 在线播放国产精品| 午夜国产精品视频免费体验区| 色999国产精品| 精品九九在线| 色播五月综合网| 亚洲v国产v| 国产69精品久久app免费版| 蜜臀av无码一区二区三区| 成人美女av在线直播| 亚洲精品成人三区| 欧美日本一区二区高清播放视频| 欧美日韩在线精品一区二区三区激情综合| 老师我好爽再深一点的视频| 国产成人精品网站| 日韩激情网站| 九色porny丨精品自拍视频| 亚洲精品国产一区二区三区| 99精品在线看| 五月天激情婷婷| 成人免费淫片视频软件| 成年人性生活视频| 成人国产激情在线| 99在线精品视频免费观看软件| www.xxxx国产| 久久久9色精品国产一区二区三区| 中文字幕乱码日本亚洲一区二区| 91在线视频| 伊甸园精品99久久久久久| 亚洲综合激情小说| 波多野结衣办公室33分钟| 91精品国产91久久久久久久久| 欧美日本在线看| 亚洲色图在线视频| 亚洲在线免费视频| 欧美精品一区二区免费| 黄色性视频网站| 蜜臀在线观看| 午夜在线播放视频欧美| 黄页网站在线免费观看| 91精品国产自产精品男人的天堂| 免费观看日批视频| 国产精品亚洲第一区在线暖暖韩国| 欧美日韩一区二区三区四区五区六区| 国产黄色免费在线观看| 欧美三级午夜理伦三级中文幕| 亚洲精品一区二区三区在线播放| 色偷偷免费视频| 成人在线视频你懂的| www.亚洲.com| 麻豆成人av在线| 日韩vs国产vs欧美| 亚洲第一天堂| 色婷婷综合缴情免费观看| 国产精品一区二区久久久| 先锋影音亚洲资源| 不卡中文字幕av| 欧美少妇性性性| 国内精品在线观看视频| 亚洲日韩第九十九页| 污影院在线观看| 青青青在线免费观看| 米奇四色影视| 蜜臀91精品国产高清在线观看| av影片在线播放| 国产精品yjizz视频网| 亚洲一区二区三区四区五区午夜| 日韩成人高清| 一个色在线视频| 中文字幕亚洲欧美日韩2019| 亚洲狼人综合网| 精品国产成人av在线免| 欧美日韩一区二区视频在线观看| 日韩精品一区二区三区av| 麻豆视频观看网址久久| 精品91一区二区三区| 欧美日韩综合在线免费观看| 日日天天久久| 男人与禽猛交狂配| 欧美性猛交久久久乱大交小说| 国产精品视频一区二区三区综合| 女尊高h男高潮呻吟| 国模gogo一区二区大胆私拍| 欧美激情精品在线| 卡一卡二卡三在线观看| 性欧美xxx极品另类| 神马日本精品| 在线国产情侣| xvideos亚洲| 亚洲免费观看高清完整版在线观| 天天综合中文字幕| av成人在线电影| 强开小嫩苞一区二区三区视频| 黄色一级视频在线观看| 四虎国产成人免费观看| 日本丰满少妇黄大片在线观看| 成人亚洲激情网| caoporn97在线视频| 国产精品果冻传媒| 天堂俺去俺来也www久久婷婷| 男女羞羞视频网站| 欧美5-7sexvideos处| 精品久久久无码人妻字幂| 亚洲天堂视频网| 精品毛片乱码1区2区3区| 黄色影院在线观看| 头脑特工队2免费完整版在线观看| japanese国产精品| 色综合色综合网色综合| 精品成人在线视频| 欧美日韩一区二区三区在线电影| 91成人小视频| 成人无码av片在线观看| www.一区二区| 国产在线观看成人| 天天摸天天干天天操| 成人性色生活片免费看爆迷你毛片| 国产亚洲精品aa午夜观看| 高清日韩电视剧大全免费| 伊人网在线视频| 在线电影中文日韩| 一级做a爰片久久毛片16| 日韩欧美亚洲在线| 99久久久久久久| free性欧美hd另类精品| 99久久久无码国产精品免费蜜柚| 男女视频免费网站| 亚洲一区中文字幕| 97视频精彩视频在线观看| 蜜桃传媒视频第一区入口在线看| 国产宾馆实践打屁股91| 日韩黄色在线免费观看| 香港三级韩国三级日本三级| 久久在线观看视频| 欧美最猛性xxxx高清| 中文字幕一区二区三区精品| 小草在线视频免费播放| 最近更新在线中文字幕一页| 免费网站成人| 欧美日韩亚洲一区二区三区在线观看| 日韩av手机在线看| 国产精选在线观看91| 中文字幕视频在线免费欧美日韩综合在线看| 国产麻豆视频在线观看| 色哟哟免费在线观看| 酒色婷婷桃色成人免费av网| 色琪琪久久se色| 高清欧美精品xxxxx在线看| 亚洲欧美二区三区| 精品午夜视频| 免费观看一级一片| 久久综合九色综合久久久精品综合| 欧美在线视频观看| www.欧美三级电影.com| 免费在线观看亚洲视频| 中文字幕欧美日韩久久| 中文字幕乱码在线播放| 国产麻豆剧果冻传媒观看hd高清| 黄瓜视频网站| 国产经典一区| 精品一区二区三区三区| 99热99re6国产在线播放| 亚洲国产乱码最新视频| 高清在线观看日韩| 欧美人与性动交α欧美精品图片| 波多野结衣一二区| www.com污| 免费xxxx性欧美18vr| 欧美肉体xxxx裸体137大胆| 欧美系列日韩一区| 91免费高清视频| 中文字幕第3页| 亚洲 欧美 日韩系列| 91精品国产闺蜜国产在线闺蜜| 浅井舞香一区二区| 羞羞在线观看视频| 亚洲AV无码一区二区三区性| 三上悠亚免费在线观看| 污黄色在线观看| 激情中国色综合| 视频一区视频二区视频三区视频四区国产| 一区二区三区福利视频| 在线免费视频一区|