Intereting Posts
Отобразить подробную группу деталей по имени поставщиков Зарегистрировать IP-адрес пользователя, дату и время Пытаетесь подключиться к сайту ASPX с помощью CURL? Разработка API – как сделать его защищенным? как получить месяц с даты в mysql Как изменить порядок значений subarray для создания таблицы с использованием PHP? PHPUnit – создание объектов Mock для работы в качестве заглушек для свойств Typo3 V6: Как создать контейнер элементов контента? (без телевизора) c # Ури не может иметь звездочку в доменном имени, но Java и php могут? Включить нижний колонтитул на любую страницу на сервере Перейдите на другую страницу после завершения загрузки файлов в dropzone.js v4.0 301 или 302 Перенаправление с помощью PHP Как включить поддержку PHP в Netbeans? Разрешения папки для загрузки файлов PHP – частные / общедоступные / общие представления? Все серии на данной оси должны иметь один и тот же тип данных

symfony2 и ошибка исключения исключения

Я пытаюсь бросить исключения, и я делаю следующее:

use Symfony\Component\HttpKernel\Exception\HttpNotFoundException; use Symfony\Component\Security\Core\Exception\AccessDeniedException; 

Я использую их следующим образом:

  throw new HttpNotFoundException("Page not found"); throw $this->createNotFoundException('The product does not exist'); 

однако я получаю ошибки, такие как HttpNotFoundException не найден и т. д.

Это лучший способ бросить исключения?

Solutions Collecting From Web of "symfony2 и ошибка исключения исключения"

Пытаться:

 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 

а также

 throw new NotFoundHttpException("Page not found"); 

Я думаю, вы немного отступили 🙂

в любом контроллере вы можете использовать это для 404 HTTP-ответа внутри Symfony

 throw $this->createNotFoundException('Sorry not existing'); 

такой же как

 throw new NotFoundHttpException('Sorry not existing!'); 

или это для 500 HTTP-кода ответа

 throw $this->createException('Something went wrong'); 

такой же как

 throw new \Exception('Something went wrong!'); 

или

 //in your controller $response = new Response(); $response->setStatusCode(500); return $response; 

или это для любого типа ошибок

 throw new Symfony\Component\HttpKernel\Exception\HttpException(500, "Some description"); 

Также … Для Custom Exception вы можете передать этот URL

Если его в контроллере вы можете сделать так:

 throw $this->createNotFoundException('Unable to find entity.'); 

В контроллере вы можете просто сделать:

 public function someAction() { // ... // Tested, and the user does not have permissions throw $this->createAccessDeniedException("You don't have access to this page!"); // or tested and didn't found the product throw $this->createNotFoundException('The product does not exist'); // ... } 

В этой ситуации нет необходимости включать use Symfony\Component\HttpKernel\Exception\HttpNotFoundException; на вершине. Причина этого заключается в том, что вы не используете этот класс напрямую, как с помощью конструктора.

Вне контроллера вы должны указать, где находится класс, и выдавать исключение, как обычно. Как это:

 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; // ... // Something is missing throw new HttpNotFoundException('The product does not exist'); 

или

 use Symfony\Component\Security\Core\Exception\AccessDeniedException; // ... // Permissions were denied throw new AccessDeniedException("You don't have access to this page!");