在php循环中,如果当前迭代失败,如何继续到下一个迭代

在php循环中,如果当前迭代失败,如何继续到下一个迭代,php,Php,我有一个这样的环 foreach ($array as $row) { $row->executeThatFunction(); } . . . public function executeThatFunction($someVariable) { // do something that may craches } 因此,我想继续循环,即使executethat函数出现php错误 我该怎么做? PS:我正在从事symfony2项目,所以如果symfony能为这种情况提

我有一个这样的环

foreach ($array as $row) {
    $row->executeThatFunction();
}
.
.
.
public function executeThatFunction($someVariable) {
    // do something that may craches
}
因此,我想继续循环,即使executethat函数出现php错误

我该怎么做? PS:我正在从事symfony2项目,所以如果symfony能为这种情况提供一些解决方案,我会很高兴了解它

提前谢谢

编辑:

我可以这样做吗

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

你可以用try。。。函数中的catch块:

public function executeThatFunction($someVariable) {
    try {
// do something that may craches
    } catch($e)
   {
 // handle your error here          
   }
}

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

这意味着您可以使用try-catch块包围您的呼叫,并在出现可丢弃错误时继续循环:

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

有些php错误是可恢复的,有些是不可恢复的。是否处理异常?关于您的编辑:一般的try/catch想法很好,但在只包含1条语句的循环中使用continue是毫无意义的。我要覆盖的错误类似于未定义的变量或未定义的索引等。catch异常$e是否能够实现这一点?我可以这样做吗?foreach$array作为$row{try{$row->executeThatFunction;}捕获$e{continue;}}当然!你可以处理代码中任何地方的异常。我想覆盖的错误有点像未定义的变量或未定义的索引等。catch Exception$e能够处理吗?我实际上没有遇到过一次性的,非常有用的,每天都是学校的一天!不可以。在php5中,您无法捕获错误,只能捕获异常。捕获异常$e。但对你来说,这就足够了。如果没有,我会首先尝试确保您的函数没有遇到任何错误…我要覆盖的错误类似于未定义的变量或未定义的索引等。捕获异常$e是否能够处理这些错误?不,这不是异常。我猜你指的是简单的php通知,比如通知:未定义的索引。。。。但是这些不会真正破坏你的功能。仅在dev环境中,因为symfony将把这些通知包装在异常中,并最终使用http500和错误页面进行响应。你不能简单地通过修好它们来摆脱这些通知吗?或者,您可能只是想通过使用:@$row->executeThatFunction来抑制它们;