目錄
一、圖片
二、異常處理try-catch-finally
1、地址
- 異常處理try-catch-finally 去看看
2、打比方
try {
//好好幹,出了問題不要怕,外面有人接應
} catch (HttpException $e) {
//時刻準備着,處理上面拋出的HTTP問題
} catch (Exception $e) {
//時刻準備着,處理他們都處理不了的問題
} finally {
//打掃戰場,都收拾好了再走人
}
3、解釋
- try 中 return 後 finally 會繼續執行,如果 finally 中也有return,則最終返回值爲 finally 中 return 的值。
- try 中 die 或 exit 後 finally 不會執行。
三、PHP中try、catch、finally的執行順序
1、地址
PHP中try、catch、finally的執行順序 去看看
2、解釋
-
代碼的執行順序是:先執行try,拋出異常的話就會運行catch,沒有拋出異常的話則不會運行catch,但
這兩種情況都會finally
,並且,finally中的返回值會覆蓋掉前面語句的返回值
。 -
finally的意義在於可以處理一些資源的清理和回收等操作。
四、php 關於try catch finally的執行順序解釋
1、地址
php 關於try catch finally的執行順序解釋 去看看
2、打比方
<?php
class test{
public function testTry(){
$i = 0;
try {
$i= $i+1;
return $i;
} catch (Exception $e) {
echo "wc";
} finally {
$i= $i+2;
print_r($i);
return "1111";//當finally有return的時候 返回這個,當註銷後,返回try 或者是 catch的內
容。
}
}
}
$b = new test();
echo $b->testTry();
?>
3、解釋
-
先拋出結論:try內部正常執行try的內部邏輯,異常則執行catch的內部邏輯結構,但是不管執行的哪個都會執行完try catch的內部邏輯(非return)後執行finally的內部邏輯。
-
如果try catch都有return,按照正常執行,然後執行finally的邏輯,再返回對應的try 或者catch裏執行return。
-
如果try catch finally都有return,執行完finally的邏輯後,會調用finally的return。