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

时间:2012-08-10 10:15:30

标签: php exception conventions zend-framework2 code-standards

如果某个课程不存在,你应该抛出哪个PHP SPL Exception?在ZF2 coding standards for exceptions的范围内。

在标准中,它说异常应该从PHP's SPL Exceptions之一延伸。我的第一个猜测是它是某种RuntimeException。

PHP SPL Exceptions

2 个答案:

答案 0 :(得分:2)

取决于您的申请背景。

如果您正在接收类名作为方法参数,并且尝试在同一方法中加载该类,那么您应该使用InvalidArgumentException异常。

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

答案 1 :(得分:-1)

如果autoload不存在,PHP会吐出RunTimeException吗?所以如果没有找到类,你的加载器也应该这样做。 (如果您正在编写自己的自动加载器)基于ZF2编码标准,它应该抛出一个RunTimeException,它位于加载器的异常命名空间中。

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