LogicException与RuntimeException

Ned*_*dec 35 php exception php-5.3

我想知道是否有规则说什么时候在PHP中使用哪个Exception ... 什么时候我必须抛出一个LogicException什么时候RuntimeException

例如,当遇到异常时PageNotFoundException,我应该从哪个异常类继承?

Cha*_*les 31

LogicException 似乎是"这种情况永远不会发生"的错误检查:

表示程序逻辑错误的异常.这种异常应直接导致代码中的修复.

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

RuntimeException适用于只能在程序运行时检测到错误的情况.命名是编译语言的延续,在编译时可以检测到某些错误.比如LogicException,一些其他SPL异常继承自它.

您可能不希望使用其中任何一个作为您自己的特定扩展的基础,除非您确定您的代码可以在继承层次结构中产生另一个异常并且您想要捕获任何这些异常而不是您的特定异常或所有例外.