PHP中try、catch、finally的執行順序

一、圖片

在這裏插入圖片描述

二、異常處理try-catch-finally

1、地址

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章