我的异常处理捕获异常,但重做会引发一些错误。
我正在使用第三方API来获取超过500万个数据,但是api经常会抛出500个错误。
我正在使用异常处理,如果发生任何错误,我想重做循环
eval{
while(my $productsRef = $se->iterate_products()) {
print Dumper($productsRef);
}
};
if ($@){
sleep 30;
redo;
}
如果发现某些异常,上面的代码会抛出错误
cant "redo" outside the loop
答案 0 :(得分:2)
你不能在循环之外redo
或basic-block,
REDO_EVAL: {
my $ok = eval {
while(my $productsRef = $se->iterate_products()) {
print Dumper($productsRef);
}
1;
};
if (!$ok){
# print "$@\n";
sleep 30;
redo;
}
}