我有一个这样的循环
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;
}
}
答案 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