• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話(huà)圖標(biāo) 余先生:13699882642

    易優(yōu)CMS異常處理

    發(fā)表日期:2018-12 文章編輯:小燈 瀏覽次數(shù):4840

    和PHP默認(rèn)的異常處理不同,ThinkPHP拋出的不是單純的錯(cuò)誤信息,而是一個(gè)人性化的錯(cuò)誤頁(yè)面。

    默認(rèn)異常處理

    在調(diào)試模式下,系統(tǒng)默認(rèn)展示的錯(cuò)誤頁(yè)面:

    只有在調(diào)試模式下面才能顯示具體的錯(cuò)誤信息,如果在部署模式下面,你可能看到的是一個(gè)簡(jiǎn)單的提示文字,例如:

    本著嚴(yán)謹(jǐn)?shù)脑瓌t,5.0版本默認(rèn)情況下會(huì)對(duì)任何錯(cuò)誤(包括警告錯(cuò)誤)拋出異常,如果不希望如此嚴(yán)謹(jǐn)?shù)膾伋霎惓#梢栽趹?yīng)用公共函數(shù)文件中或者配置文件中使用error_reporting方法設(shè)置錯(cuò)誤報(bào)錯(cuò)級(jí)別(請(qǐng)注意,在入口文件中設(shè)置是無(wú)效的),例如:

    // 異常錯(cuò)誤報(bào)錯(cuò)級(jí)別,error_reporting(E_ERROR | E_PARSE );

    異常處理接管

    框架支持異常頁(yè)面由開(kāi)發(fā)者自定義類(lèi)進(jìn)行處理,需要配置參數(shù)exception_handle

    // 異常處理handle類(lèi) 留空使用 \think\exception\Handle'exception_handle' => '\\app\\common\\exception\\Http',

    自定義類(lèi)需要繼承Handle并且實(shí)現(xiàn)render方法,可以參考如下代碼:

    <?phpnamespace app\common\exception;use Exception;use think\exception\Handle;use think\exception\HttpException;class Http extends Handle{public function render(Exception $e){// 參數(shù)驗(yàn)證錯(cuò)誤if ($e instanceof ValidateException) {return json($e->getError(), 422);}// 請(qǐng)求異常if ($e instanceof HttpException && request()->isAjax()) {return response($e->getMessage(), $e->getStatusCode());}//TODO::開(kāi)發(fā)者對(duì)異常的操作//可以在此交由系統(tǒng)處理return parent::render($e);}}

    需要注意的是,如果配置了'exception_handle',且沒(méi)有再次調(diào)用系統(tǒng)render的情況下,配置http_exception_template就不再生效,具體可以參考Handle類(lèi)內(nèi)實(shí)現(xiàn)的功能。

    V5.0.11版本開(kāi)始,可以通過(guò)閉包定義的方式簡(jiǎn)化異常自定義處理,例如,上面的自定義異常類(lèi)可以改為直接配置exception_handle參數(shù):

    'exception_handle'=>function(Exception $e){// 參數(shù)驗(yàn)證錯(cuò)誤if ($e instanceof \think\exception\ValidateException) {return json($e->getError(), 422);}// 請(qǐng)求異常if ($e instanceof \think\exception\HttpException && request()->isAjax()) {return response($e->getMessage(), $e->getStatusCode());}}

    部署模式異常

    一旦關(guān)閉調(diào)試模式,發(fā)生錯(cuò)誤后不會(huì)提示具體的錯(cuò)誤信息,如果你仍然希望看到具體的錯(cuò)誤信息,那么可以如下設(shè)置:

    // 顯示錯(cuò)誤信息'show_error_msg'=>true,

    異常捕獲

    可以使用PHP的異常捕獲進(jìn)行必要的處理,但需要注意一點(diǎn),在異常捕獲中不要使用think\Controller類(lèi)的error、success和redirect方法,因?yàn)樯鲜鋈齻€(gè)方法會(huì)拋出HttpResponseException異常,從而影響正常的異常捕獲,例如:

    try{Db::name('user')->find();$this->success('執(zhí)行成功!');}catch(\Exception $e){$this->error('執(zhí)行錯(cuò)誤');}

    應(yīng)該改成

    try{Db::name('user')->find();}catch(\Exception $e){$this->error('執(zhí)行錯(cuò)誤');}$this->success('執(zhí)行成功!');

    本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶(hù)參考了本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/11157.html
    相關(guān)cms文章
     八年  行業(yè)經(jīng)驗(yàn)

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費(fèi)獲得網(wǎng)站建設(shè)方案及報(bào)價(jià)

    咨詢(xún)相關(guān)問(wèn)題或預(yù)約面談,可以通過(guò)以下方式與我們聯(lián)系

    業(yè)務(wù)熱線(xiàn):余經(jīng)理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    久久精品9988| 日批日出水久久亚洲精品tv| 国产亚洲精品免费视频播放| 国产精品1024永久免费视频| 最新国产精品精品视频| 国产精品久久久久久久小说| 亚洲av永久无码精品国产精品| 四虎成人精品国产永久免费无码| 精品国产福利片在线观看| 国产AV午夜精品一区二区三区| 国产乱人伦app精品久久| 国产精品亚洲午夜一区二区三区| 亚洲人精品午夜射精日韩 | 最新国产成人精品2024| 国产精品亚洲综合| 2020精品自拍视频曝光| 无码精品日韩中文字幕| 中文字幕日韩专区精品系列| 国产成人精品视频午夜| 色综合久久精品亚洲国产| 98精品国产高清在线看入口| 中文字幕日韩精品无码内射| 无码人妻精品一区二区蜜桃百度 | 国产精品久久久天天影视香蕉| 国产精品无码一区二区三区毛片| 99re热精品视频国产免费| 久久精品国产精品国产精品污| 精品午夜福利1000在线观看| 国产农村妇女精品一二区| 国产精品99亚发布| 99精品一区二区三区无码吞精| 99精品视频在线观看免费播放| 久久夜色精品国产亚洲| 国产麻豆9l精品三级站| 九九久久精品国产| 亚洲性日韩精品一区二区三区| 日本精品视频一区二区三区| 国产精品秘入口18禁麻豆免会员 | 国产精品喷水在线观看| 久久精品国产亚洲AV无码麻豆| 久久精品国产成人|