如何很好地处理Doctrine 2的错误?

时间:2013-09-30 22:26:23

标签: php codeigniter error-handling doctrine-orm doctrine

我有一些代码有时会因为不同的原因而抛出错误。我想获得更多有关它的信息。问题是要么我什么都没有,我的应用程序中断或者我使用try catch并从xdebug_message获取一大堆我无法真正向用户显示的内容。

假设我需要做一个对象集合并确保填充了一些参数(对于这种情况,我们在实体中有nullable = false)。如果我错过了这两点中的一点以下是我得到的以下代码:

// We create the event
        $event = new Entity\Event;
        $event->setType( $this->input->post( 'type' ) );
        $event->setDescription( $this->input->post( 'description' ) );

        $event->setPlace( $place );
        $event->setUser( $user );

        // We can now persist this entity:
        try
        {
            $em->persist( $event );
            $em->flush();
        }
        catch( \Doctrine\DBAL\DBALException $e )
        {
            // Error When Persisting the Entity !!
            // 500 Internal Server Error
            // A generic error message, given when no more specific message is suitable
            $this->response( array( 'error' => $e ), 500 );
        }

        $message = array(
                        "success" => TRUE
                    );

        // Everything is fine
        $this->response( $message, 200 ); // 200 being the HTTP response code

在这种情况下,它返回:

  

{ “错误”:{ “xdebug_message”:”

我想要做的是,从此错误消息中,自动执行某些功能或向前端发送显式消息以进行任何可能的配置。我不能在这里使用xdebug,它对此目的没有多大帮助。

如何从PHP或Doctrine本身获取更明确的详细信息?

我正在使用Doctrine2和Codeigniter 2.1或2不知道。

由于

1 个答案:

答案 0 :(得分:1)

有一些功能可以给你很好的信息。例如$e->getMessage() $e->getCode()