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

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

поэтому я хочу проверить, содержит ли мое исключение определенную строку для отображения определенного сообщения.
вот мой код:

  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....}

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

у кого есть идея?
Спасибо

0

Решение

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

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

и т.п.

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

0

Другие решения

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

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector