LogicException vs. RuntimeException

2022-08-30 13:27:08

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

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


答案 1

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

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

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

RuntimeException 适用于发生错误的情况,该错误只能在程序运行时检测到。命名是编译语言的遗留物,在编译时可以检测到某些错误。就像 ,其他一些 SPL 例外继承自它。LogicException

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


答案 2

推荐