dmitriylanets
@dmitriylanets
веб-разработчик

Как отловить Exception, выброшенный в кастомной функции twig'а?

//botstrup.php
$twig->addFunction(new Twig_SimpleFunction('generateSchoolList', function($class){
    if(!class_exists($class))
	throw new \NotFoundClassException($class);

    echo (new $class)->sendOutput();
}));

//controller
class Controller{

    function index(){
	try{
	    return $this->twig->render("home");
	} catch(\Exception $e){
	    return $e->getMessage();
	}
    }
}
//home.twig
<td>{{generateModule('Project\\UserList') }}</td>


При выбрасывании NotFoundClassException обработка и вывод ошибки происходит внутри twig, в том месте где используется {{generateModule('Project\\UserList') }} как то можно прокинуть его до уровня контролера?
  • Вопрос задан
  • 455 просмотров
Решения вопроса 1
@1alexandr
try {
    $content = $this->twig->render('tmp');
} catch(\Exception $e) {
    return $e->getPrevious()->getMessage();
}
return $content;

твиг выбрасывает Twig_Error_Runtime в previous твой ексепшын
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы