背景:假设我有以下明显不正确的 PHP:
try{
$vtest = '';
print(array_pop($vtest));
}catch(Exception $exx){}
为了与 array_pop 一起使用,$vtest 显然应该是一个数组,而不是一个字符串。然而,当我运行此代码时,会出现警告。我不希望这样,我只是希望代码默默地失败。
问题:与其他语言相比,PHP try-catch 有什么特别之处导致它不起作用吗?
免责声明:仅供参考,PHP 中确实有其他方法来处理这种情况,但这些方法都是不可取的。这里的目标是避免:
“at 符号”技巧:
$vtest = '';
print(@array_pop($vtest)); // <-- would like to avoid this
类型铸造:
$vtest = '';
$vtest = (array)$vtest;
print(array_pop($vtest));
从技术上讲,警告和通知在 PHP 中并不是例外。要捕获异常,必须显式抛出异常,并且许多内置函数库不会抛出异常(主要是因为它们是在 PHP 支持异常之前编写的)。
如果以某种方式在现有的通知/警告/错误框架之上构建异常,那就太好了,但也许这要求太多了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)