2013-05-25 48 views
-3

好吧,所以我是新來的錯誤處理,我見過一些例子,但我沒有看到這個問題的答案。我將使用一些真正的基本示例代碼來展示我所要求的內容。執行throw()和catch()之間的代碼嗎?

if(some condition){ 
    throw Exception() 
    } 

    //Some random code in between 
    echo "Code between throw() and Catch()"; 

catch(Exception $e){ 
//handle the caught exception 
} 

所以基本上,我的問題是這樣的 - 如果在條件IF()會導致異常被拋出,將隨機echo語句執行,或將其跳過,直接進入到catch()的例外?

+8

您的代碼不完整。你能寫一個有效的嘗試抓住,這樣纔有意義嗎? –

+0

它會更快地嘗試它,看看會發生什麼 – Crisp

回答

5

the manual

當一個異常被拋出,下面的語句代碼將不會繼續執行,而PHP就會嘗試查找第一個匹配的catch塊

4

答案是NO,

例:

<?php try{ 
      $conn = new PDO('mysql:host=localhost; dbname=xxx', 'xxx', ''); 
     ?> 

...我只是一個HTML文本。 ...

<?php 
     }catch(PDOException $e){ 
      echo 'ERROR: '.$e->getMessage(); 
     }  

這是因爲,一旦try指令失敗,它會很快跳入捕獲該錯誤並顯示錯誤。所以,你不能在中間看到/評估任何東西。

0

一旦標識並執行了標記,然後控件將被移動到標記塊。所有其他語句將被跳過。