給使用者提示能用try catch嗎還是要用if(){echo '成功';}else{echo '失敗';}
而這兩種又有何差別
ringa_lee
try和if一樣,都是程式語(yǔ)言提供的語(yǔ)法。並沒(méi)有哪個(gè)給程式設(shè)計(jì)師看,哪個(gè)給使用者看的說(shuō)法。
但是它們有很多特性是不同的。具體用哪個(gè),並無(wú)鐵律。
題註會(huì)這樣問(wèn),說(shuō)明沒(méi)有掌握到異常機(jī)制的運(yùn)用精髓。既然如此,不如用if,簡(jiǎn)單就不會(huì)出錯(cuò)。
if
和try catch
並沒(méi)有說(shuō)要給誰(shuí)看,還是視情況而定為了業(yè)務(wù)而設(shè)計(jì)。
if
:一般用當(dāng)前功能的邏輯上面的判斷,判斷一些可以預(yù)測(cè)的可能性;try catch
:通常用于異常的捕捉,這些異常出現(xiàn)的可能性是不可預(yù)測(cè)的,比如‘磁盤內(nèi)存不足’,‘0被整除’等等,為什么這里不用if
呢?因?yàn)檫@些通用的異常一般不是被語(yǔ)言庫(kù)包裝成了對(duì)應(yīng)的異常對(duì)象,就是在項(xiàng)目?jī)?nèi)部被封裝成自己的庫(kù),然后可以廣泛使用,當(dāng)然了,用if
也可以達(dá)到同樣的效果,甚至源碼里面都用到了if
,而我們沒(méi)有必要自己再做這種事情,而且過(guò)多的使用if
做異常檢測(cè)難免讓人覺(jué)得很奇怪
try catch更多用來(lái)捕捉未知異常;如果是可預(yù)見的異常try catch提示使用者也是不錯(cuò)的用法;用if提示訊息也可以;如果是未知異常,想規(guī)避異常提示,try catch是個(gè)好主意!
try catch 是用來(lái)處理異常,抑制錯(cuò)誤並收集錯(cuò)誤訊息用的,if 為true時(shí)執(zhí)行程式碼,else執(zhí)行另外的程式碼,給使用者提示要用if 沒(méi)必要用try catch
當(dāng)然是給 程式設(shè)計(jì)師看的啊 ......
用戶哪個(gè)會(huì)到看你的echo出來(lái)的內(nèi)容....
try catch 是異常捕捉
try catch 是用於捕獲異常
如果捕獲到異常就可以在控制臺(tái)看到錯(cuò)誤日誌,易於查看錯(cuò)誤信息與調(diào)試
捕獲異常,拋出異常後,可以避免程序在有錯(cuò)的情況下運(yùn)行不至於崩潰