У меня проблема. Я ловлю исключение и хочу персонализировать сообщение об ошибке в зависимости от сообщения об исключении.
поэтому я хочу проверить, содержит ли мое исключение определенную строку для отображения определенного сообщения.
вот мой код:
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....}
но не знаю как это сделать
у кого есть идея?
Спасибо
Я бы посоветовал вам указать исключения для таких случаев. Таким образом, вместо разбора строки сообщения вы получите специальное исключение, подобное следующему:
try {
...
}
catch(NotFoundException) {
}
catch(CustomException) {}
и т.п.
В Symfony вы также можете определить прослушиватель исключений ядра (подробнее см. Здесь: http://symfony.com/doc/current/cookbook/service_container/event_listener.html) и обрабатывать ваши исключения в зависимости от его типа.
как ответили в комментарии на мой вопрос, я решаю свою проблему с помощью метода strpos