tp5封裝自定義異常處理類返回類

2021-09-25 23:29:49 字數 2008 閱讀 1882

大部分情況我們寫程式返回給後端都是直接在需要返回的節點寫個return即可,不管是前端請求需要的結果還是意料之外的結果都是如此,有時候我們可以使用丟擲異常的方式告知前端獲取的結果與其意願不符。

大部分框架也都是有全域性異常處理機制,下面就以thinkphp5來實踐。

1新建自定義異常基類

namespace

;use

think\exception

;/**

* class baseexception

* 自定義異常類的基類

*/class

baseexception

extends

exceptionif(

array_key_exists

('code'

,$params))

if(array_key_exists

('msg'

,$params))

if(array_key_exists

('errorcode'

,$params))

}}

2新建異常處理類
namespace

;use

think\exception\handle

;use

think\log

;use

think\request

;use

exception;/*

* 重寫handle的render方法,實現自定義異常訊息

*/class

exceptionhandler

extends

handle

else

$this

->

code

=500

;$this

->

msg=$e-

>

getmessage()

;$this

->

errorcode

=999

;$this

->

recorderrorlog($e

);}$request

= request:

:instance()

;$result=[

'msg'

=>

$this

->

msg,

'error_code'

=>

$this

->

errorcode

,'request_url'

=>

$request

=$request

->

url()]

;return

json

($result

,$this

->

code);

}/** 將異常寫入日誌

*/private

function

recorderrorlog

(exception $e

)}

3 使用自定義異常處理接替框架異常處理
'exception_handle'

=>

,

4 使用

定義乙個登陸異常類

namespace

;class

loginexception

extends

baseexception

程式中使用

public

static

function

loginbyname

($username

,$password

)elseif

(!self:

:checkpassword

($user

,$password))

else

}

tp5自定義異常處理

1.傳統模式自定義異常處理 定義model層分母為0的異常資訊 url api model index.php use think exception class index catch exception ex return true 定義controller層index資訊 use think ...

TP5自定義全域性異常處理提示render不相容

填坑 tp5自定義全域性異常處理提示render不相容 thinkphp5.1php框架 更新於 2月27日 約 2 分鐘 tp5自定義全域性異常處理,所有丟擲的異常都通過自定義render方法渲染,再返回客戶端顯示。需要自定義handle的render方法並覆蓋 use think excepti...

tp5自定義命令

建立自定義命令列 1.首先是註冊cammand return 2.建立類,繼承cammand usethink console command class chat extends command protected function execute input input,output outpu...