Menu
Coddy logo textTech

Блок 'try...catch'

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 53 из 68.

Когда ваш PHP-код сталкивается с проблемами, которые могут привести к его аварийному завершению, вам нужен способ изящно обрабатывать такие ситуации. Блок try...catch предоставляет структурированный подход для работы с исключениями — специальными объектами ошибок, которые представляют серьезные проблемы в вашем коде.

Блок try содержит код, который может завершиться ошибкой или вызвать исключение. Если в этом блоке возникает исключение, PHP немедленно прекращает выполнение оставшегося кода в блоке try и переходит к соответствующему блоку catch. Блок catch обрабатывает исключение, позволяя вашему скрипту продолжать работу вместо аварийного завершения.

<?php
try {
    // Код, который может вызвать исключение
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // Обработка исключения
    echo "An error occurred: " . $e->getMessage();
}
?>

Блок catch получает объект Exception, который содержит информацию о том, что пошло не так. Вы можете получить доступ к сообщению об ошибке, используя метод getMessage(). Этот подход предотвращает остановку всего вашего скрипта при возникновении ошибки, давая вам контроль над тем, как обрабатываются ошибки и что видят ваши пользователи.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Вы получите на вход одно значение: число, представляющее возраст. Входные данные могут быть отрицательным числом, что является недопустимым для возраста.

Прочитайте входные данные, преобразуйте их в целое число и создайте блок try...catch. Внутри блока try проверьте, является ли возраст отрицательным. Если он отрицательный, выбросьте новое исключение Exception с сообщением "Age cannot be negative". Если возраст корректен (ноль или положительное число), выведите "Valid age: ", а затем значение возраста.

В блоке catch обработайте исключение, выведя "Error: ", а затем сообщение исключения, используя метод getMessage().

Формат входных данных: Одна строка, содержащая целое число (например: 25 или -5)

Ожидаемый вывод:

  • Если возраст корректен: Valid age: за которым следует значение возраста
  • Если возраст отрицательный: Error: Age cannot be negative

Шпаргалка

Блок try...catch обрабатывает исключения в PHP, предотвращая аварийное завершение скриптов при возникновении ошибок.

Базовый синтаксис:

<?php
try {
    // Код, который может вызвать исключение
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // Обработка исключения
    echo "An error occurred: " . $e->getMessage();
}
?>

Блок try содержит потенциально проблемный код. Если возникает исключение, PHP переходит к блоку catch, который получает объект Exception. Используйте getMessage() для доступа к сообщению об ошибке.

Вы можете вручную генерировать исключения, используя:

throw new Exception("Custom error message");

Попробуйте сами

<?php
// Чтение входных данных
$age = intval(fgets(STDIN));

// TODO: Напишите ваш код ниже
// Создайте блок try...catch для проверки возраста


?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком