PHP try-catch块:他们能够捕获无效的arg类型吗?

前端之家收集整理的这篇文章主要介绍了PHP try-catch块:他们能够捕获无效的arg类型吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
背景:假设我有以下明显不正确的 PHP
try{
        $vtest = '';
        print(array_pop($vtest));
    }catch(Exception $exx){}

为了使用array_pop,$vtest应该显然是一个数组,而不是字符串.然而,当我运行这个代码时,会显示警告.我不想要,我只是希望代码默默地失败.

问题:与其他语言相比,PHP try-catch有什么特别之处吗?

免责声明:
仅供参考,在PHP中还有其他方法来处理这种情况,但这是不可取的.这里的目标是避免:

“at-sign”技巧:

$vtest = '';
        print(@array_pop($vtest)); // <-- would like to avoid this

类型铸造:

$vtest = '';
        $vtest = (array)$vtest;  
        print(array_pop($vtest));
PHP中,警告和通知不是技术上的例外.要捕获异常,必须明确抛出异常,并且许多内置的函数库不会抛出异常(主要是因为它们是在PHP支持的异常之前编写的).

如果某些异常是建立在现有的通知/警告/错误框架之上的,那么这可能是很好的,但也许是要求太多.

原文链接:https://www.f2er.com/php/139717.html

猜你在找的PHP相关文章