在php循环中,如果当前的一个崩溃,如何继续下一次迭代

时间:2016-10-01 19:41:01

标签: php symfony

我有一个这样的循环

foreach ($array as $row) {
    $row->executeThatFunction();
}
.
.
.
public function executeThatFunction($someVariable) {
    // do something that may craches
}

所以我想继续循环,即使executeThatFunction()崩溃(例如php错误)

我该怎么做? PS:我正在研究symfony2项目,所以如果symfony为这种情况提供了一些解决方案,我很乐意学习它。

提前致谢

编辑:

我可以这样做吗?

foreach ($array as $row) {
try {
    $row->executeThatFunction();
} catch($e)
{
continue;
   }
}

2 个答案:

答案 0 :(得分:2)

如果您使用php7:php7会抛出异常等错误。并且所有可恢复的错误都是可捕获的。此外,错误和异常都实现了一个名为Throwable的通用接口。

这意味着您可以使用try-catch-block包围您的调用,并在发生throwable错误时继续循环:

foreach ($array as $row) {
    try {
        $row->executeThatFunction();
    } catch (Throwable $t) {
        // you may want to add some logging here...
        continue;
    }
}

答案 1 :(得分:0)

您可以在函数中使用try ... catch块:

crop=iw/2:ih:iw/2*t/5:0