我想知道是否有规则说明何时在PHP中使用哪个例外... 我什么时候需要抛出LogicException
和RuntimeException
?
例如,当遇到像PageNotFoundException
这样的异常时,我应该从哪个异常类继承?
答案 0 :(得分:31)
LogicException
似乎是“这种情况永远不会发生”的错误检查:
表示程序逻辑错误的异常。这种异常应直接导致代码中的修复。
其他一些SPL异常,如BadFunctionCallException
继承它。
RuntimeException
适用于只能在程序运行时检测到错误的情况。命名是编译语言的延续,在编译时可以检测到某些错误。与LogicException
一样,其他一些SPL异常也从中继承。
您可能不希望使用其中任何一个作为您自己的特定扩展的基础,除非您知道肯定您的代码可能在继承层次结构中产生另一个异常并且您想要捕获任何这些而不是您的特定例外或所有例外。