【问题标题】:Is there any native PHP function which throws an built-in Exception?是否有任何引发内置异常的原生 PHP 函数?
【发布时间】:2012-05-23 08:47:37
【问题描述】:

在回答 PHP rename() doesn't throws exception on error 时,我想知道除了 SPL 之外,是否有任何原生 PHP 函数会抛出内置的 Exception

【问题讨论】:

    标签: php exception spl


    【解决方案1】:

    【讨论】:

    • 啊,是的,但这算不算,因为它无论如何都是面向对象的......?我将其解释为仅指程序样式功能(尽管我可能是错的)
    • 有趣!但据我所知,它仅在 OO/Class 上下文中,而不是在调用简单函数时。还是?
    • 我怀疑没有 OO 上下文,只是在 php 源文件夹中快速查找 zend_throw_exception 表明只有在 OO 上下文中。
    【解决方案2】:

    不是真的。如果您阅读了您链接的页面上的注释:

    注意:

    内部 PHP 函数主要使用 Error reporting只有现代的 Object oriented 扩展使用异常。但是,错误可以通过ErrorException 简单地转换为异常。

    【讨论】:

    • 谢谢!这是合理的!但它说“主要使用错误报告”。真的没有吗?
    • @powtac:直到 PHP5 才将异常添加到 PHP。因此,任何长期使用任何形式的 PHP 的人自然会期望正常的 PHP 函数返回错误,而不是异常。所以随机开始抛出开始返回异常而不是错误的函数会让很多人失望。然后您还需要两种处理方法:一种用于正常错误,另一种用于异常。为什么要把两者混在一起?
    【解决方案3】:

    PHP 5 具有类似于其他编程语言的异常模型。

    ErrorException

    【讨论】:

    • PHP 的错误/异常模型与其他语言完全不同,恕我直言,它是 PHP 设计中最糟糕的部分之一(也就是说)
    • 这如何回答这个问题?
    猜你喜欢
    • 2022-11-03
    • 2018-01-16
    • 2017-08-06
    • 2010-09-12
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多