php try catch 失败后后面的语句还会继续执行吗?

代码如下:

public function getCountByType($type) {

    try {
        ......
        return $num;
    } catch (Exception $e) {
        Log::dbe($e);
    }
    return 0;

}

请问后面那句 return 0; 有必要吗?

谢谢回答!

阅读 9.9k
6 个回答

有必要, 除非你的异常处理的代码还继续抛出异常, 才会阻止后续的语句执行.

顺序就是:

  1. 执行你的主要代码 ... , 抛出异常

  2. catch 捕获异常, 执行异常处理代码, Log::dbe($e)

  3. 继续执行 try {} catch () {} 结构体后面的代码.

没必要,因为不出异常你会return $num,想必你也不会再有return 0的需求了吧,而出了异常会直接执行catch里面的语句,不会执行下面任何语句,自然也不会执行下面的return 0

新手上路,请多包涵

失败后,如果catch(){}中有打断则不会继续执行,否则会继续往下执行的。

如果你需要失败了return 0,就有必要

可以采用 try{}catch(){}final{}来兜底执行,final中的是一定执行的。

这么说吧,如果try的部分出了异常就执行catch的内容,还会执行return 0,如果你的网站架构是像yii这样有afteraction的话,不写return 0,还会把afteraction的内容跑一遍,所以我一般都会在每个方法中写个return

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题