您如何继续执行迭代失败的循环,但仍希望运行循环的其余部分。
$arr = [1, 2, 3, 4];
foreach($arr as $val) {
if($val == 2) {
throw new \Exception('Value = 2');
}
try {
echo $val;
}
catch(\Execption $e) {
echo $e;
}
}
我该怎么做
答案 0 :(得分:1)
如果要遵循这种模式,可以尝试使用这种模式。
$arr = [1, 2, 3, 4];
foreach($arr as $a) {
try {
if ( $a == 2 ) {
throw new Exception('Exception');
}
echo $a.' ';
}
catch(Exception $e) {
echo 'Message ';
}
echo PHP_EOL;
}
这将有助于避免中断循环
结果将为:
1 Message 3 4
希望有帮助。
答案 1 :(得分:0)
您可以创建一个日志,而不是引发异常
Log::error('Array value = ' . $val);
continue;
这将记录问题,但仍允许处理其余数组
这里有更多详细信息: