我有一个这样的循环
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)
如果您使用 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)