使用哪个ClassNotFoundException?

时间:2016-02-17 01:47:25

标签: php laravel exception-handling

我目前正在开发一个Laravel项目,我有一些代码,如果找不到给定类型的类,我想抛出异常。

$className = $type . 'Field';

if (!class_exists($className))
{
    // Throw exception
}

但是我的IDE(IntelliJ)让我自动完成3个不同的类,这些类属于不同的包,它们都具有相同的名称。

  • Prophecy\Exception\Doubler\ClassNotFoundException
  • Symfony\Component\Debug\Exception\ClassNotFoundException
  • PhpSpec\Exception\Fracture\ClassNotFoundException

这些以及我应该在这种情况下使用哪一个以及为什么之间有什么区别?

1 个答案:

答案 0 :(得分:3)

您应该使用Symfony\Component\Debug\Exception\ClassNotFoundException

其他两个异常处理是针对PhpSpec(测试)和Prophecy(针对phpspec的模拟框架)。

由于您尝试为ClassNotFound抛出异常,因此您应该使用Symfony异常处理程序。