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