【问题标题】:LogicException vs. RuntimeExceptionLogicException 与 RuntimeException
【发布时间】:2011-07-31 23:31:08
【问题描述】:

我想知道是否有一条规则说明何时在 PHP 中使用哪个异常... 我何时必须抛出 LogicException 以及何时抛出 RuntimeException

比如遇到PageNotFoundException这样的异常,我应该从哪个异常类继承?

【问题讨论】:

    标签: php exception php-5.3


    【解决方案1】:

    LogicException 似乎是用于“这永远不会发生”的错误检查:

    表示程序逻辑错误的异常。这种异常应该直接导致您的代码得到修复。

    其他一些 SPL 异常,例如 BadFunctionCallException 继承自它。

    RuntimeException 用于仅在程序运行时才能检测到的错误发生的情况。命名是对编译语言的保留,在编译时可以检测到某些错误。与 LogicException 一样,其他一些 SPL 异常也继承自它。

    您可能不想将其中任何一个用作您自己的特定扩展的基础,除非您知道确定您的代码可能会在继承层次结构中产生另一个异常并且您希望捕获其中任何一个,而不是您的特定异常或所有异常。

    【讨论】:

    • 所以在大多数情况下,我宁愿使用Exception 作为我自己的例外的基础?
    • 除非您出于某种原因需要中间类型的异常,是的,您应该只扩展基类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多