-3

好的,所以我是错误处理的新手,我看过一些例子,但我还没有看到这个问题的答案。我将使用一些真正的基本示例代码来说明我在问什么。

if(some condition){
    throw Exception()
  }

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

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

所以基本上,我的问题是——如果 if() 中的条件导致抛出异常,随机回显语句会执行,还是会跳过并直接进入异常的 catch()?

4

3 回答 3

5

手册

当抛出异常时,语句后面的代码将不会被执行,PHP 会尝试找到第一个匹配的 catch 块

于 2013-05-25T16:51:26.573 回答
4

答案是不,

例子:

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

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

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

这是因为,一旦 try 指令失败,它会迅速跳转到捕获该错误,并显示该错误。因此,您无法看到/评估介于两者之间的任何内容。

于 2013-05-25T16:56:33.047 回答
0

一旦识别并执行了 throw,则控制将移至 catch 块。所有其他语句将被跳过。

于 2013-05-25T16:57:58.073 回答