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

Исключение InvalidArgumentException

Исключение InvalidArgumentException наследуется от стандартного класса \InvalidArgumentException языка PHP и реализует интерфейс ExceptionInterface. Оно выбрасывается, когда в метод или функцию передан аргумент, который не соответствует ожидаемому формату, типу или значению. Первым параметром в конструктор передаётся сообщение об ошибке, вторым - код исключения, третьим - предыдущее исключение.

Синтаксис

throw new InvalidArgumentException(string $message = "", int $code = 0, ?Throwable $previous = null);

Пример

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

<?php namespace AppService; use SymfonyComponentValidatorExceptionInvalidArgumentException; class ArticleService { public function setCount(int $count): void { if ($count < 0) { throw new InvalidArgumentException('Count must be positive.'); } echo "Count: " . $count; } } ?>

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

"Count: 5"

Результат выполнения кода при вызове метода с отрицательным аргументом:

Fatal error: Uncaught InvalidArgumentException: Count must be positive.

Пример

Давайте обработаем исключение InvalidArgumentException с помощью конструкции try-catch:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentValidatorExceptionInvalidArgumentException; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(int $id): Response { try { if ($id <= 0) { throw new InvalidArgumentException('ID must be greater than zero.'); } return new Response('Article ID: ' . $id); } catch (InvalidArgumentException $e) { return new Response('Error: ' . $e->getMessage(), 400); } } } ?>

Результат выполнения кода для адреса /article/5:

Article ID: 5

Результат выполнения кода для адреса /article/0:

Error: ID must be greater than zero.

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

  • исключение HttpException,
    которое является базовым для HTTP-исключений
  • исключение BadRequestHttpException,
    которое выбрасывается при ошибке 400
  • исключение NotFoundHttpException,
    которое выбрасывается при ошибке 404
  • интерфейс HttpExceptionInterface,
    который реализуют все HTTP-исключения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить