Symfony2 - 正在尝试从名称空间“AppBundle \ Controller”加载类“Exception”。
抛出简单的异常是一种常见的做法,所以我认为它会被内置到'Symfony2'中,但是,执行下面的代码,我会在这个问题的标题中看到部分错误下面尽显。Symfony2 - 正在尝试从名称空间“AppBundle Controller”加载类“Exception”。
if(($result === FALSE) || ($result !== 1)) { throw new Exception('update user account data function -- ' .
'update return value: ' . $result . ' - ' .
'unable to update your account!');
} // if(($result === FALSE) || ($result !== 1)) ...
此错误告诉我,新的异常类不被支持的Symfony2除非我也把它添加到我的控制器的使用范围,但我不知道要加上的值有使用PHP的这个功能。
有人请告诉我应该在我的中使用区?
在我的代码,基于在https://www.w3schools.com/php/php_exception.asp在w3School的PHP异常页所示的实施例中,$导致变量由学说DBAL 更新方法(http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#update),它返回更新的行或数设置如果出现错误,则返回FALSE。
我知道,在我的代码更新方法工作,因为大部分时间$结果被指定一个非零返回值,没有出现异常,但有时$结果被分配了一个0,仍没有例外,表示已知存在的行实际上未被更新。
有什么方法可以知道更新失败的原因吗?
在这种情况下,我尝试使用上面的代码抛出异常,但随后的Symfony2显示以下内容:
已尝试从名称空间“的appbundle \控制器”加载类“异常”。 您是否忘记了“使用”声明“Symfony \ Component \ Security \ Acl \ Exception \ Exception”,“Symfony \ Component \ Serializer \ Exception \ Exception”或“Symfony \ Component \ Config \ Definition \ Exception \ Exception”? 500内部服务器错误 - ClassNotFoundException的
在SRC /的appbundle /控制器/ BreakinOutAdminController.php在行
1358. 1359. if(($result === FALSE) || ($result !== self::ONE_ROW)) { 1360. 1361. throw new Exception('update user account data function -- ' . 1362. 'update return value: ' . $result . ' - ' . 1363. 'unable to update your account!'); 1364.
1361线在页面Symphony2 didplays突出。
所以两个问题:
我应该把我的使用区什么,所以我可以抛出一个异常,用我自己的消息?
有什么方法可以知道更新失败的原因吗?
谢谢。
回答:
Attempted to load class "Exception" from (the current) namespace
是我经常做的一个问题。这不是Symfony问题 - 只是关于默认命名空间。
...new Exception
(或SplExceptions,或其他任何东西 - DateTime
是另一种常见的人看到了同样的问题)只是意味着从目前的命名空间中获取类,除非它是专门从use
列表中引用的 - 但Exception
,或DateTime
,或其他人在根名称空间 - \Exception
。您可以在每个文件中使用use
以使别名在本地使用,或者预置\ backslash。良好的单元测试运行所有的代码,当涉及到这种情况时会中断 - 或静态代码分析(如phpstan)可以帮助您避免生产错误,因为这些类不存在于当前可用的名称空间中脚本。
以上是 Symfony2 - 正在尝试从名称空间“AppBundle \ Controller”加载类“Exception”。 的全部内容, 来源链接: utcz.com/qa/258384.html