如果类不存在,您应该抛出哪个 PHP SPL 异常


Which PHP SPL Exception should you throw if a class doesn't exist

如果一个类不存在,你应该抛出哪个 PHP SPL 异常?在 ZF2 异常编码标准的上下文中。

在标准中,它说异常应该从PHP的SPL异常之一扩展。我的第一个猜测是它是某种运行时异常。

PHP SPL 例外

取决于应用程序的上下文。

如果您以方法参数的形式接收类名,并且尝试在同一方法中加载该类,则应使用 InvalidArgumentException 异常。

如果从字段值或方法接收类名,则应使用 RuntimeException

如果autoload不存在,PHP会吐出一个RunTimeException,对吗?因此,如果您的加载器找不到该类,则应执行相同的操作。 (那是如果您正在编写自己的自动加载器) 根据 ZF2 编码标准,它应该抛出一个 RunTimeException,该异常位于加载器的异常命名空间内。

因此,如果您的加载器位于 My''Loader 中,那么您的运行时异常将在 My''Loader''Exception''RunTimeException 中。