Подтвердить что ты не робот

Не удается поймать Исключение, выброшенное углеродом

Следующий код генерирует исключение, которое я не могу поймать по какой-либо причине.

try {
    $this->date = \Carbon\Carbon::parse($this->date)->toDateString();
}
catch (Exception $err) {
    $this->date = \Carbon\Carbon::parse("January 1st 1900")->toDateString();
}

Теперь, если я поместил это в файл маршрутов в закрытие функции, он отлично работает. Это вызывает только исключение, вызванное из модели.

exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (Summer 2015) at position 0 (S): The timezone could not be found in the database' in /home/vagrant/www/steamcompare/vendor/nesbot/carbon/src/Carbon/Carbon.php:222

У кого-то еще была эта проблема с Carbon?

4b9b3361

Ответ 1

Сразу после постановки вопроса я подумал об ответе. Поскольку я видел много сообщений в Интернете по очень похожей проблеме, я подумал, что буду идти дальше и ответить на этот вопрос.

Проблема заключалась в расширении имен. Углерод работал в другом пространстве имен из моего приложения (очевидно), поэтому, когда я пытался catch (Exception), я действительно пытался поймать исключение в своем пространстве имен приложений. Изменение оператора catch в catch (\Exception) разрешило его.

Я надеюсь, что это поможет любому, кто попадает на эту страницу.