私は例外に取り組んでおり、例外リスナーを作成しようとしています。そこでは、データベースに関連する例外がログに記録され、電子メールで送信されます。Symfony3:集中型例外処理
しかし、問題は、私のようにユーザーにメッセージを表示するためにスローされた例外をキャッチしたときに、リスナーが呼び出されていないということです。エラーがレンダリングされていないときと同じリスナーが呼び出され
try {
try {
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')
->getUserByEmail('[email protected]');
}
catch(\Doctrine\DBAL\DBALException $e) {
throw new \Doctrine\DBAL\DBALException('DBAL error!!');
}
}
catch(\Exception $e) {
echo $e->getMessage();
}
:
try {
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')
->getUserByEmail('[email protected]');
}
catch(\Doctrine\DBAL\DBALException $e) {
throw new \Doctrine\DBAL\DBALException('DBAL error!!');
}
例外リスナー:
class ExceptionListener {
public function onKernelException(GetResponseForExceptionEvent $event) {
$exception = $event->getException();
if ($exception instance of \Doctrine\DBAL\DBALException) {
//log the error
}
...
...
}
}
私がしたいことは、エラーを適切かつ一箇所で管理することです。ありがとう。
ところであなたはすでに[エラーを電子メールに設定モノローグ](http://symfony.com/doc/current/cookbook/logging/monolog_email.html)を参照してくださいがありますか? – Matteo
はい、それを実装する可能性があります。ありがとうございました。 – codeit