Symfony - исключение при сравнении строк сообщения

0

У меня проблема. Я поймаю исключение, и я хочу персонализировать сообщение об ошибке в зависимости от сообщения об исключении.

поэтому я хочу проверить, содержит ли мое 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....}

но не знаю, как это сделать

у кого есть идеал? благодаря

  • 1
    Вы можете попробовать метод strpos из php
Теги:
exception
comparison

2 ответа

0

как ответил в комментарии к моему вопросу, я решаю свою проблему, используя метод strpos

0

Я предлагаю вам указать исключения для таких случаев. Таким образом, вместо синтаксического анализа строки сообщения вы получите специальное исключение:

try {
    ...
}
catch(NotFoundException) {
}
catch(CustomException) {}

и т.п.

В Symfony вы также можете определить прослушиватель исключений ядра (подробнее см. Здесь: http://symfony.com/doc/current/cookbook/service_container/event_listener.html) и обрабатывать свои исключения в зависимости от его типа.

  • 0
    THX я решил свою проблему, но я посмотрю на это, может быть, это будет чище

Ещё вопросы

Сообщество Overcoder
Наверх
Меню