我想知道是否有一个规则说什么时候在PHP中使用哪个异常…什么时候我必须抛出一个LogicException
和一个RuntimeException
例如,当涉及到异常像PageNotFoundException
,从哪个异常类我应该继承?
LogicException
似乎是为"这永远不会发生"的错误检查:
表示程序逻辑错误的异常。这种异常应该直接导致在你的代码中修复。
其他一些SPL异常,如BadFunctionCallException
继承自它。
RuntimeException
用于只有在程序运行时才能检测到的错误发生的情况。命名是编译语言的延续,在编译时可以检测到某些错误。像LogicException
一样,其他一些SPL异常继承自它。
你可能不希望使用它们中的任何一个作为你自己特定扩展的基础,除非你确信你的代码可能会在继承层次中产生另一个异常,并且你想捕获其中的任何一个,而不是你的特定异常或所有异常。