Почему `catch (Exception $e)` не обрабатывает это `ErrorException`?

Я получаю ErrorException в вызове функции ниже. Как это может быть? Почему он не пойман?

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

Основная причина ошибки - вызов file_put_contents. Я использую структуру Laravel 4, если это имеет какое-то значение.

Ответ 1

Я подозреваю, что вам нужно написать это:

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

Обратите внимание на\перед Exception.

Когда вы объявили пространство имен, вам нужно указать корневое пространство имен перед классами, например Exception, иначе блок catch здесь будет искать \Your\Namespace\Exception, а не только \Exception