加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 14:03:55 所属栏目:PHP教程 来源:网络整理
导读:背景:假设我有以下明显不正确的 PHP: try{ $vtest = ''; print(array_pop($vtest)); }catch(Exception $exx){} 为了使用array_pop,$vtest应该显然是一个数组,而不是字符串.然而,当我运行这个代码时,会显示警告.我不想要,我只是希望代码默默地失败. 问题:
背景:假设我有以下明显不正确的 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支持的异常之前编写的).

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读