У меня проблема. Я поймаю исключение, и я хочу персонализировать сообщение об ошибке в зависимости от сообщения об исключении.
поэтому я хочу проверить, содержит ли мое excpetion определенную строку для рассылки определенного сообщения. вот мой код:
try {
$em->persist($document);
$em->flush();
} catch (\Exception $ex) {
$error = "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry";
throw new \Exception('Erreur lors de l\'upload du fichier');
}
поэтому я хочу сделать что-то вроде
if($ex->getMessage() "contain" $error){throw new \Exception....}
но не знаю, как это сделать
у кого есть идеал? благодаря
как ответил в комментарии к моему вопросу, я решаю свою проблему, используя метод strpos
Я предлагаю вам указать исключения для таких случаев. Таким образом, вместо синтаксического анализа строки сообщения вы получите специальное исключение:
try {
...
}
catch(NotFoundException) {
}
catch(CustomException) {}
и т.п.
В Symfony вы также можете определить прослушиватель исключений ядра (подробнее см. Здесь: http://symfony.com/doc/current/cookbook/service_container/event_listener.html) и обрабатывать свои исключения в зависимости от его типа.