在PHP中如何處理錯誤情況更優雅?

2021-10-12 01:47:47 字數 582 閱讀 9874

假設現在有乙個查詢使用者資訊的函式getuserinfo(),引數是userid,如果傳進來的userid不符合格式要求,或者根據這個userid查不到對應的使用者資訊,這時候函式有2種處理方式:

返回false或者null給呼叫者

丟擲乙個異常

以上兩種方式哪種更好呢,為什麼?有沒有更好的錯誤處理方式?

應該選擇丟擲異常,因為使用返回 false 或者 null 的歧義太大。

比如,獲取使用者資訊成功的情況下,返回的是乙個陣列,但是中途出錯了,所以你返回了乙個 false 或 null ,如果沒有做判斷,直接對返回資訊進行foreach或者使用array_*方法,就會造成呼叫方發生未知異常,所以除了丟擲異常,還要嚴格限定輸入、輸出值,讓呼叫方減少疑惑。showtooltip

function getuserinfo(int $id) : array;

function getuserinfo(int $id) : userinfo;

錯誤統計(如何處理)

unresolved external symbol main referenced in function tmaincrtstartup,在vcbuilt時,出現此錯誤,可能是由於更改正常函式的main名稱導致鏈結錯誤。可以project properties linker system sub...

如何處理錯誤ORA 29275

問題描述 在執行查詢select from v session 會出現ora 29275 部分多位元組字元的錯誤,這是什麼原因開始我不得其解,網上也沒有介紹什麼好辦法。解決方案 經過一次增加顯示一列的方式查詢,我發現問題出在action列上,action的結構是varchar2 32 並不是每行該列...

php中怎樣做報表?該如何處理

php中怎樣做報表?現在正在做乙個小系統,開發工具wamp。開發進度已經做到報表這一階段,想請教大家一下,用什麼控制項來做報表?這些報表將來是要列印的。大家介紹一下做報表的控制項吧!謝謝了!解決方案 關鍵看你要實現的程度了 如果只是查詢,列印。不需要控制項也行,調整好格式就 了 解決方案 那太簡單了...