【发布时间】:2011-07-31 23:31:08
【问题描述】:
我想知道是否有一条规则说明何时在 PHP 中使用哪个异常... 我何时必须抛出 LogicException 以及何时抛出 RuntimeException?
比如遇到PageNotFoundException这样的异常,我应该从哪个异常类继承?
【问题讨论】:
我想知道是否有一条规则说明何时在 PHP 中使用哪个异常... 我何时必须抛出 LogicException 以及何时抛出 RuntimeException?
比如遇到PageNotFoundException这样的异常,我应该从哪个异常类继承?
【问题讨论】:
LogicException 似乎是用于“这永远不会发生”的错误检查:
表示程序逻辑错误的异常。这种异常应该直接导致您的代码得到修复。
其他一些 SPL 异常,例如 BadFunctionCallException 继承自它。
RuntimeException 用于仅在程序运行时才能检测到的错误发生的情况。命名是对编译语言的保留,在编译时可以检测到某些错误。与 LogicException 一样,其他一些 SPL 异常也继承自它。
您可能不想将其中任何一个用作您自己的特定扩展的基础,除非您知道确定您的代码可能会在继承层次结构中产生另一个异常并且您希望捕获其中任何一个,而不是您的特定异常或所有异常。
【讨论】:
Exception 作为我自己的例外的基础?