1

这是相关代码:

throw new Exception("Message");

这是我收到的错误消息:

致命错误:require() [function.require]: 无法打开所需的 'C:\wamp\www\drupal-7.15\sites\all\modules\dbManip\Entities\Exception.php' (include_path='.;C:\ wamp\bin\php\php5.3.13\pear\') 在 C:\wamp\bin\php\php5.3.13\pear\Doctrine\Common\ClassLoader.php 第 163 行

我相信 Doctrine 正在尝试加载Exception类定义,就好像它只是我的另一个实体一样,但据我所知,Exception它是 PHP 原生的(我使用的是 PHP 5.3.13)。我的理论是我在自动加载器方面做错了什么,但我不确定是什么。这是我对自动加载器的看法:

use Doctrine\ORM\Tools\Setup;

require_once("Doctrine/ORM/Tools/Setup.php");
Setup::registerAutoloadPEAR();

$classloader = new Doctrine\Common\ClassLoader('Entities', __DIR__);
$classloader->register();

我在这里做错了什么?Exception如果没有教义的自动加载器尝试加载实体,如何使用抛出异常?

4

1 回答 1

1

这是 PHP 在玩。不是教义。

当您在命名空间中声明文件时,它将为文件中提到的所有类使用相同的命名空间。要指示 Exception 类来自根命名空间,您必须使其显式。

throw new \Exception("Message");
于 2012-08-16T18:37:08.470 回答