2015-07-06 13 views
10

Der folgende Code löst eine Ausnahme aus, die ich aus irgendeinem Grund nicht fangen kann.Kann keine Ausnahme von Carbon geworfen

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

Nun, wenn ich dies in einer Funktion Schließung in meinen Routen-Datei setzen, es funktioniert gut. Es wird nur eine Ausnahme ausgelöst, wenn es vom Modell aufgerufen wird.

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

Hat jemand anderes dieses Problem mit Kohlenstoff hat?

Antwort

28

Unmittelbar nach dem Stellen der Frage dachte ich an die Antwort. Da ich viele Online-Posts über ein sehr ähnliches Thema gesehen habe, dachte ich mir, ich würde weitermachen und auf dieses antworten.

Das Problem war Namespace. Carbon lief in einem anderen Namensraum als meine App (offensichtlich). Als ich versuchte, catch (Exception) zu versuchen, versuchte ich tatsächlich eine Ausnahme im Namespace meiner App zu finden. Das Ändern der catch-Anweisung in catch (\Exception) löste es.

Ich hoffe, das hilft jedem, der auf dieser Seite landet.

+3

Sie sollten Ihre Antwort als die richtige Antwort markieren, während Sie hier Ihre Frage beantworten :) – alexrussell

+2

Ich werde, sobald der Timer, dass SO auf eine Frage setzt, geht weg. – Nathan

+2

Ahh Entschuldigung wusste nicht, dass es einen gab. – alexrussell

Verwandte Themen