php-什么时候以及为什么`finally`有用?
作者:互联网
PHP 5.5最终实现了try-catch.我的疑问是:到底何时进行try-catch-find可能比仅在try-catch下方编写更有用?
示例之间的区别:
try { something(); }
catch(Exception $e) { other(); }
finally { another(); }
取而代之的是:
try { something(); }
catch(Exception $e) { other(); }
another();
能给我提供一些这种情况下常见的例子吗?
笔记:
>我只说说try-catch-finally,而不是说说try-finally.
>有些“功能”很酷,比如您取消当前的异常并最终抛出一个新的其他异常(我没有尝试过,I read here).我不知道是否有可能最终实现.
>诸如notcatch之类的东西有用吗?因此,如果尝试无一例外,我可以运行代码.呵呵
解决方法:
在try或catch块离开后,finally块中的代码始终执行.当然,您可以在try-catch之后继续编写代码,它也会被执行.但是,当您想中断代码执行时(例如从函数返回,中断循环等),最后还是很有用的.您可以在此页面上找到一些示例-http://us2.php.net/exceptions,例如:
function example() {
try {
// open sql connection
// Do regular work
// Some error may happen here, raise exception
}
catch (Exception $e){
return 0;
// But still close sql connection
}
finally {
//close the sql connection
//this will be executed even if you return early in catch!
}
}
但是,是的,你是对的.最后在日常使用中不是很流行.当然,不如单独尝试捕获.
标签:try-catch-finally,php,exception-handling 来源: https://codeday.me/bug/20191010/1887977.html