2013-05-25 35 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

一旦标识并执行了标记,然后控件将被移动到标记块。所有其他语句将被跳过。