РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
537 of 1361 menu

Исключение ServiceUnavailableHttpException

Исключение ServiceUnavailableHttpException используется для возврата ответа с кодом 503 Service Unavailable. Оно сигнализирует клиенту, что сервер временно не может обработать запрос. Первым параметром передаётся время в секундах, через которое сервис станет доступен, вторым - текст сообщения об ошибке.

Синтаксис

new ServiceUnavailableHttpException( int $retryAfter = null, string $message = '', Throwable $previous = null, int $code = 0, array $headers = [] )

Пример

Давайте выбросим исключение в контроллере, если сервис временно недоступен:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionServiceUnavailableHttpException; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $available = false; if (!$available) { throw new ServiceUnavailableHttpException( 60, 'Service is temporarily unavailable.' ); } return new Response('hello'); } } ?>

Результат выполнения кода:

503 Service Unavailable

Пример

Давайте перехватим исключение и выведем его сообщение:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionServiceUnavailableHttpException; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { try { throw new ServiceUnavailableHttpException( 120, 'Please try again later.' ); } catch (ServiceUnavailableHttpException $e) { $res = $e->getMessage(); return new Response($res); } } } ?>

Результат выполнения кода:

"Please try again later."

Пример

Давайте получим код статуса исключения:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionServiceUnavailableHttpException; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { try { throw new ServiceUnavailableHttpException(60); } catch (ServiceUnavailableHttpException $e) { $res = $e->getStatusCode(); return new Response((string) $res); } } } ?>

Результат выполнения кода:

503

Смотрите также

  • исключение HttpException,
    которое является базовым для HTTP-исключений
  • исключение TooManyRequestsHttpException,
    которое представляет ошибку 429 Too Many Requests
  • метод getStatusCode,
    который возвращает код статуса исключения
  • метод getMessage,
    который возвращает текст сообщения об ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить