我想知道PHP中何时使用哪个异常规则... 什么时候必须抛出LogicException
,什么时候需要抛出RuntimeException
?
例如,对于像PageNotFoundException
这样的异常,我应该继承哪个异常类呢?
LogicException
看起来是用于进行“永远不可能发生”的错误检查:
代表程序逻辑中的错误异常。这种类型的异常应该直接导致您的代码进行修复。
一些其他的 SPL 异常,例如BadFunctionCallException
,从它继承而来。
RuntimeException
是用于在程序运行时才能检测到的错误情况。这个命名是由编译型语言遗留下来的,因为在这种语言中,某些错误可以在编译时进行检测。像 LogicException
一样,其他一些 SPL 异常也从中继承而来。
除非你确定你的代码会产生继承层次结构中的另一个异常并且你想捕获其中任何一个特定的异常或所有异常,否则你可能不希望将它们作为自己特定扩展的基础。
Exception
作为我的自定义异常的基类? - Nedec