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

kim*_*imo 0 php

我有一个这样的循环

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

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

我怎样才能做到这一点 ?PS:我正在研究 symfony2 项目,所以如果 symfony 为这种情况提供一些解决方案,我会很高兴学习它。

提前致谢

编辑 :

我可以做这样的事情吗?

foreach ($array as $row) {
try {
    $row->executeThatFunction();
} catch($e)
{
continue;
   }
}
Run Code Online (Sandbox Code Playgroud)

sim*_*.ro 7

如果您使用 php7: php7 会抛出异常之类的错误。并且所有可恢复的错误都是可捕获的。并且错误和异常都实现了一个名为Throwable.

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

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