php try catch 失败后后面的语句还会继续执行吗?
代码如下:
public function getCountByType($type) {
try {
......
return $num;
} catch (Exception $e) {
Log::dbe($e);
}
return 0;
}
请问后面那句 return 0; 有必要吗?
谢谢回答!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
有必要, 除非你的异常处理的代码还继续抛出异常, 才会阻止后续的语句执行.
顺序就是:
执行你的主要代码 ... , 抛出异常
catch 捕获异常, 执行异常处理代码,
Log::dbe($e)
继续执行
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