目录
一、图片
二、异常处理try-catch-finally
1、地址
- 异常处理try-catch-finally 去看看
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。