Блок '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(). Этот подход предотвращает остановку всего вашего скрипта при возникновении ошибки, давая вам контроль над тем, как обрабатываются ошибки и что видят ваши пользователи.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите на вход одно значение: число, представляющее возраст. Входные данные могут быть отрицательным числом, что является недопустимым для возраста.
Прочитайте входные данные, преобразуйте их в целое число и создайте блок 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 для проверки возраста
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»5Журнал успеваемости студентов
Настройка проекта: структура данныхДобавление нового студентаДобавление оценки студентуРасчет среднего балла студентаПоиск лучшего студентаСоздание табеля успеваемости8Обработка ошибок и исключений
Понимание ошибок PHPБлок 'try...catch'Блок 'finally'Генерация исключенияСоздание пользовательского исключенияИспользование пользовательского исключенияИтоги: Валидация входных данных3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров