Exception DoctrineORMModule和Zend Framework 2-未引发异常

Exception DoctrineORMModule和Zend Framework 2-未引发异常,exception,doctrine-orm,zend-framework2,Exception,Doctrine Orm,Zend Framework2,我使用DoctrineORMModule(https://github.com/doctrine/DoctrineORMModule,通过Composer)和ZF2安装,以开发web应用程序 我的问题是,我没有从学说中得到例外,只有一个“内部500”错误。 即使 ini_set('display_errors', 1); error_reporting(E_ALL); 我没有看到错误,只有“Internal 500”消息(我也在php.ini中应用了这些设置)。“php\u错误\u日志”中也

我使用DoctrineORMModule(https://github.com/doctrine/DoctrineORMModule,通过Composer)和ZF2安装,以开发web应用程序

我的问题是,我没有从学说中得到例外,只有一个“内部500”错误。 即使

ini_set('display_errors', 1); 
error_reporting(E_ALL);
我没有看到错误,只有“Internal 500”消息(我也在php.ini中应用了这些设置)。“php\u错误\u日志”中也没有条目

如果我用try-catch块包围这些行,则不会捕获任何异常。调用flush()和persist()时会发生这种情况。将显示其他PHP错误

例如:

ini_set('display_errors', 1);
error_reporting(E_ALL);

$rel  = new \MyApp\Entity\UserRelationship();
$rel->relatingUser = $user;
$rel->relatedUser  = $friend;

try {
    $em->persist($rel);
} catch ( Exception $e ) {
    var_dump($e);
}
这将导致一个“内部500”错误,但我想条令应该抛出一个错误

我在谷歌上搜索了几个小时,但我不知道这是默认行为,还是必须配置doctrineORMModule来记录/抛出异常。如果有人能给我一个关于如何获取异常的提示,我将非常感激,因为这会让我的速度非常慢

编辑:我可以使用persist()和flush(),执行数据库查询,一切正常。只是如果我在实体中犯了错误,并且想要保留或清除它们,我不会得到异常。如果我在persist()之前回显某个内容,但数据库没有更新或其他任何内容,则不会显示“Internal 500”


Edit2:上面示例中的错误是错误的“mappedBy”条目和/或错误的命名setter。仍然没有例外:)

这实际上与条令无关。异常可以在您使用的任何库中抛出。您必须知道,一般来说,当您没有捕获异常时,php会因为未捕获的异常而创建一个致命错误。我认为您在设置
display\u errors
/
error\u reporting()
时犯了一个错误,因为这应该会显示php错误


此外,Zend Framework有一个异常处理程序来捕获运行部分中的异常。如果您在
Zend\Mvc
的动作控制器中有此代码,您将看到一个不错的错误页面。框架在很多地方捕获错误,但是如果您在没有捕获的情况下放置此代码,它就不会被捕获。

您好,您是对的:如果我在操作中抛出异常,我也会得到内部500。因此,问题似乎出在框架中,可能是我禁用了某些东西或弄乱了布局(php.ini似乎是正确的,因为其他项目显示了异常)。我会再次检查骨架并进行调查;)非常感谢。我把布局搞砸了。从SkeletonApplication中恢复了它,现在我看到了异常。再次感谢你!!没问题:)如果使用最新的ZF2库,甚至会捕获视图层中的异常。要求最高的功能,但没有时间将其应用到2.0.*afaik。现在,您还可以追溯到视图错误:)