2013-02-25 9 views
10

Ich bekomme die ErrorException auf den Funktionsaufruf unten. Wie kann das sein? Warum wird es nicht gefangen?

try { 
    static::$function_name($url); 
} 
catch (Exception $e) {} 

Der eigentliche Grund für den Fehler ist ein file_put_contents Anruf. Ich benutze das Laravel 4 Framework, wenn es einen Unterschied macht.

+0

Nein, Sie nicht. .. –

+0

"Sie nicht" was? –

+0

erhalten Sie eine 'ErrorException', die diesen' try'/'catch' Block entfernt. Erstellen Sie einen Testfall. –

Antwort

32

Ich vermute, dass Sie diese schreiben müssen:

try { 
    static::$function_name($url); 
} catch (\Exception $e) {} 

Beachten Sie die \ vor Ausnahme.

Wenn Sie einen Namespace deklariert haben, müssen Sie den Stammnamespace vor Klassen wie Exception angeben, da sonst die hier catch-Block für \Your\Namespace\Exception suchen wird, und nicht nur \Exception

+5

Oder 'Ausnahme verwenden;' in Ihrem aktuellen Namespace –

+0

Wunderbar !!! Schöner Fang! – Turtle