我有一些代码有时会因为不同的原因而抛出错误。我想获得更多有关它的信息。问题是要么我什么都没有,我的应用程序中断或者我使用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不知道。
由于
答案 0 :(得分:1)
有一些功能可以给你很好的信息。例如$e->getMessage()
$e->getCode()