使用简单的函数:
function hello( $var )
{
try
{
// do something with $var which may or may not throw an exception
return $var;
}
finally
{
return $var;
}
}
如果将其转换为以下内容,逻辑或处理上是否有任何差异:
function hello( $var )
{
try
{
// do something with $var which may or may not throw an exception
return $var;
}
catch( Exception $e )
{
return $var;
}
}
请忽略对
$e
未做任何操作的事实,以及样例函数的简单/无用性;这只是一个MCVE。此次转换的目的是使源代码在PHP 5.3中完全兼容,因为
finally{}
是在5.5中引入的,我希望尽可能少地进行更改,同时保持100%的逻辑。我之所以提出这个问题,是因为我个人使用try/catch/finally块的经验很少,也不知道所有的陷阱。
是否有更好的方法实现PHP 5.3兼容性?
try{}
块中有一个return
,我已经进行了一些测试来证明你的说法是错误的。至于关于$var
来源的混淆,它在函数声明中作为必需参数提供。 - MonkeyZeusfinally{}
和catch(){}
是唯一的区别,但会产生不同的结果? - MonkeyZeusreturn $var;
。 - MonkeyZeus