亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php try catch 失敗后后面的語句還會繼續執行嗎?

php try catch 失敗后后面的語句還會繼續執行嗎?

精慕HU 2019-03-01 10:38:33
代碼如下: public function getCountByType($type) { try { ...... return $num; } catch (Exception $e) { Log::dbe($e); } return 0; } 請問后面那句 return 0; 有必要嗎? 謝謝回答!
查看完整描述

6 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

有必要, 除非你的異常處理的代碼還繼續拋出異常, 才會阻止后續的語句執行.

順序就是:

  1. 執行你的主要代碼 ... , 拋出異常

  2. catch 捕獲異常, 執行異常處理代碼, Log::dbe($e)

  3. 繼續執行 try {} catch () {} 結構體后面的代碼.

查看完整回答
反對 回復 2019-03-01
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

沒必要,因為不出異常你會return $num,想必你也不會再有return 0的需求了吧,而出了異常會直接執行catch里面的語句,不會執行下面任何語句,自然也不會執行下面的return 0

查看完整回答
反對 回復 2019-03-01
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

失敗后,如果catch(){}中有打斷則不會繼續執行,否則會繼續往下執行的。

查看完整回答
反對 回復 2019-03-01
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

如果你需要失敗了return 0,就有必要

查看完整回答
反對 回復 2019-03-01
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

可以采用 try{}catch(){}final{}來兜底執行,final中的是一定執行的。

查看完整回答
反對 回復 2019-03-01
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

這么說吧,如果try的部分出了異常就執行catch的內容,還會執行return 0,如果你的網站架構是像yii這樣有afteraction的話,不寫return 0,還會把afteraction的內容跑一遍,所以我一般都會在每個方法中寫個return

查看完整回答
反對 回復 2019-03-01
  • 6 回答
  • 0 關注
  • 4098 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號