PHP 中 finally 和 return 的交互
导言
当 try 块或 catch 块(或两者)包含一个 return 语句时,finally 块会呈现出一种特殊的行为。通常,return 语句会使程序控制权返回到调用位置。但是,对于带有 try/catch 块且带 return 的函数,finally 块中的语句会在返回前先执行。
示例
在以下示例中,div() 函数有一个 try - catch - finally 结构。没有异常的 try 块会返回除法运算结果。在异常情况下,catch 块会返回错误消息。但是,在这两种情况下,finally 块中的语句都会先执行。
示例
<?php
function div($x, $y){
try {
if ($y==0)
throw new Exception("Division by 0");
else
$res=$x/$y;;
return $res;
}
catch (Exception $e){
return $e->getMessage();
}
finally{
echo "This block is always executed
";
}
}
$x=10;
$y=0;
echo div($x,$y);
?>输出
会显示以下输出
This block is always executed Division by 0
将 $y 的值变为 5。 会显示以下输出
This block is always executed 2
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP