Loops PHP:使用continue-in-catch在循环中尝试catch-finally
好的,只是一个关于上述代码的技术问题:Loops PHP:使用continue-in-catch在循环中尝试catch-finally,loops,try-catch,php-7,continue,try-catch-finally,Loops,Try Catch,Php 7,Continue,Try Catch Finally,好的,只是一个关于上述代码的技术问题: foreach($x作为$y){//甚至是一个简单的for() 试一试{ a(); }捕获(\异常$e){ //只需跳过当前迭代即可 持续 }最后{ c(); } } 由于c()位于finally块中,因此应该始终执行它,但是continue语句呢? 根据图,它似乎正在使块最终被跳过 那么,在a()引发异常的情况下是否执行c()?只需使用控制台就可以轻松发现。类型 php -r 'foreach([1, 2] as $n){try {echo "\n",
foreach($x作为$y){//甚至是一个简单的for()
试一试{
a();
}捕获(\异常$e){
//只需跳过当前迭代即可
持续
}最后{
c();
}
}
由于c()
位于finally
块中,因此应该始终执行它,但是continue
语句呢?根据图,它似乎正在使
块最终被跳过
那么,在a()
引发异常的情况下是否执行c()
?只需使用控制台就可以轻松发现。类型
php -r 'foreach([1, 2] as $n){try {echo "\n", $n, "\n"; throw new \Exception();} catch (\Exception $e) {continue;} finally {echo "finally has been called";}}'
这是代码的单字符串表示形式
foreach ([1, 2] as $n) {
try {
echo "\n", $n, "\n";
throw new \Exception();
} catch (\Exception $e) {
continue;
} finally {
echo "finally has been called";
}
}
你会得到
1
finally has been called
2
finally has been called