Ste*_*che 1 php pdo doctrine symfony doctrine-orm
我有一个随机的问题,我无法缩小范围.偶尔,我会在Symfony2应用程序中收到以下错误:
未捕获的异常:驱动程序中发生异常:SQLSTATE [1040]连接太多{"type":1,"file":"/ var/www/symfony/vendor/doctrine/dbal/lib/Doctrine/DBAL /驱动器/ AbstractMySQLDriver.php", "行":115, "电平":30709
我想设置一个应用程序范围的侦听器来捕获PDOException并记录一些信息.我怎样才能挂进Symfony才能捕获PDOException?
您需要创建自定义异常侦听器.它将侦听所有异常,但您将在其中指定类型检查.
在你services.yml需要指定监听器:
kernel.listener.your_pdo_listener:
class: Acme\AppBundle\EventListener\YourExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onPdoException }
Run Code Online (Sandbox Code Playgroud)
现在您需要创建此类:
YourExceptionListener:
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
class YourExceptionListener
{
public function onPdoException(GetResponseForExceptionEvent $event)
{
$exception = $event->getException();
if ($exception instanceof PDOException) {
//now you can do whatever you want with this exception
}
}
}
Run Code Online (Sandbox Code Playgroud)
检查doc 如何创建事件侦听器
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |