Как продолжить выполнение после исключения в Laravel?

Привет есть функция, которая импортирует новых пользователей из файла CSV.
Если поле пароля для пользователя пустое, я получаю
Cartalyst \ Sentry \ Users \ PasswordRequiredException

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

В настоящее время я использую этот обработчик:

App::error(function(Cartalyst\Sentry\Users\PasswordRequiredException $exception)
{
Session::push('import.errors', $exception->getMessage());
});

Используя XDebug, я определил, что обработчик запущен, но выполнение также останавливается после ошибки.

Как я могу продолжить импортировать остальных пользователей в CSV?

1

Решение

Вам нужно поймать исключение, когда ваша функция импортирует новых пользователей, тогда вы можете игнорировать это:

your_import_function($users_to_be_imported)
{
foreach ($users_to_be_imported as $user) {
try {
// Import user code here
} catch (Cartalyst\Sentry\Users\PasswordRequiredException $exception) {
// Log user that failed here
}
}
}

Поскольку вы ловите исключение в своей функции — оно не должно «пузыриться» до App::error() функция

2

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

Других решений пока нет …

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