PHP中try、catch、finally的执行顺序

一、图片

在这里插入图片描述

二、异常处理try-catch-finally

1、地址

2、打比方

try {
    //好好干,出了问题不要怕,外面有人接应
} catch (HttpException $e) {
    //时刻准备着,处理上面抛出的HTTP问题
} catch (Exception $e) {
    //时刻准备着,处理他们都处理不了的问题
} finally {
    //打扫战场,都收拾好了再走人
}

3、解释

  • try 中 return 后 finally 会继续执行,如果 finally 中也有return,则最终返回值为 finally 中 return 的值。
  • try 中 die 或 exit 后 finally 不会执行。

三、PHP中try、catch、finally的执行顺序

1、地址

PHP中try、catch、finally的执行顺序 去看看

2、解释

  • 代码的执行顺序是:先执行try,抛出异常的话就会运行catch,没有抛出异常的话则不会运行catch,但这两种情况都会finally,并且,finally中的返回值会覆盖掉前面语句的返回值

  • finally的意义在于可以处理一些资源的清理和回收等操作。

四、php 关于try catch finally的执行顺序解释

1、地址

php 关于try catch finally的执行顺序解释 去看看

2、打比方

<?php
class test{
    public function testTry(){
    $i = 0;
    try {
       $i= $i+1;
       return $i;
    } catch (Exception $e) {
       echo "wc";
    } finally {
       $i= $i+2;
        print_r($i);
        return "1111";//当finally有return的时候 返回这个,当注销后,返回try 或者是 catch的内 
        容。
     }  
   }
}
 
$b = new test();
echo $b->testTry();
 
?>

3、解释

  • 先抛出结论:try内部正常执行try的内部逻辑,异常则执行catch的内部逻辑结构,但是不管执行的哪个都会执行完try catch的内部逻辑(非return)后执行finally的内部逻辑。

  • 如果try catch都有return,按照正常执行,然后执行finally的逻辑,再返回对应的try 或者catch里执行return。

  • 如果try catch finally都有return,执行完finally的逻辑后,会调用finally的return。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值