Функция throw_if
Функция throw_if применяется для генерации исключения, если переданное условие истинно. Первым параметром передаётся условие, вторым - исключение или его сообщение, третьим - дополнительные данные для исключения. Если условие ложно, функция возвращает переданное значение.
Синтаксис
<?php
throw_if($condition, $exception, $data);
?>
Пример
Давайте проверим, что значение переменной 'age' меньше 18, и выбросим исключение с сообщением:
<?php
$age = 15;
$res = throw_if($age < 18, new Exception('Access denied: age must be 18 or older'));
echo "User is adult: " . $age;
?>
Результат выполнения кода:
"Exception: Access denied: age must be 18 or older"
Пример
Давайте проверим, что массив пустой, и выбросим исключение:
<?php
$items = [];
$res = throw_if(empty($items), new InvalidArgumentException('Array cannot be empty'));
echo "Process items...";
?>
Результат выполнения кода:
"InvalidArgumentException: Array cannot be empty"
Пример
Давайте передадим третьим параметром дополнительные данные для исключения:
<?php
$userInput = 120;
$limit = 100;
$res = throw_if(
$userInput > $limit,
new OutOfRangeException('Value exceeds limit'),
['limit' => $limit, 'input' => $userInput]
);
echo "Processing value: " . $userInput;
?>
Результат выполнения кода:
"OutOfRangeException: Value exceeds limit"
Пример
Если условие ложно, функция возвращает переданное значение:
<?php
$value = 42;
$res = throw_if($value > 100, new Exception('Value is too large'));
echo "Returned: " . $res;
?>
Результат выполнения кода:
"Returned: 42"
Смотрите также
-
функция
throw_unless,
которая генерирует исключение, если условие ложно -
функция
report_if,
которая условно отправляет отчёт об ошибке -
функция
rescue,
которая выполняет код и перехватывает исключения -
функция
report,
которая отправляет отчёт об исключении