關於try catch finally的執行順序解釋(PHP版本)


偶然遇到了被問到finally的執行問題,忽然發現一直用的都是try catch 沒有用過finally的情況,所以目前總結一下。

先拋出結論:try內部正常執行try的內部邏輯,異常則執行catch的內部邏輯結構,但是不管執行的哪個都會執行完try catch的內部邏輯(非return)后執行finally的內部邏輯。

      如果try catch都有return,按照正常執行,然后執行finally的邏輯,再返回對應的try 或者catch里執行return。

      如果try catch finally都有return,執行完finally的邏輯后,會調用finally的return。

<?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();

?>

  簡答的測試代碼如上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM