Как обработать исключение Imagine в CakePHP 3

Я полагаю, что не могу правильно обработать исключение, используя Imagine libray.

Мой код:

use ....
use Imagine\Exception;
....

try {

    $imagine = new Imagine();

    $image = $imagine->open($img_path . DS . "tmpfile." . $extension)
        ->resize(new Box($cwidth, $cheight))
        ->crop(new Point($offsetx, $offsety), new Box(500, 500));

    ...

} catch (Imagine\Exception\Exception $e) {

    die("catch Imagine\Exception\Exception");
    $file = new File($img_path . DS . "tmpfile." . $extension);
    if ($file->exists()) {
        $file->delete();
    }

}

но на Imagine Exception я не улавливаю это, и мой сценарий останавливается.

Где моя ошибка?

1 ответ

Решение

Вы используете полное имя, что приводит к его разрешению относительно текущего пространства имен, т.е. Imagine\Exception\Exception будет разрешать \CurrentNamespace\Imagine\Exception\Exceptionи так как этого не существует, вы ничего не ловите.

Либо используйте импортированное пространство имен, которое Exceptionт.е. Exception\Exception, который разрешит \Imagine\Exception\Exceptionили используйте правильное полное имя, то есть имя, начинающееся с \т.е. \Imagine\Exception\Exception,

См. Также руководство по PHP> Справочник по языку> Пространства имен> Использование пространств имен: основы

Другие вопросы по тегам