Создание пользовательского исключения
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 56 из 68.
Хотя встроенный класс Exception в PHP хорошо подходит для общей обработки ошибок, создание собственных пользовательских классов исключений позволяет выводить гораздо более конкретные и информативные сообщения об ошибках. Пользовательские исключения помогают различать типы проблем в вашем коде и обрабатывать их соответствующим образом.
Чтобы создать пользовательское исключение, вы расширяете базовый класс PHP Exception, используя ключевое слово extends. Это наследование наделяет ваше пользовательское исключение всей функциональностью стандартного исключения, позволяя при этом добавить собственное специфическое поведение или просто дать более описательное имя.
<?php
class InvalidEmailException extends Exception {
// Класс может быть пустым — он наследует всё от Exception
}
// Вы также можете добавить пользовательские свойства или методы
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Сила пользовательских исключений заключается в их описательных именах и возможности перехватывать конкретные типы исключений. Вместо того чтобы перехватывать общее Exception, вы можете перехватывать InvalidEmailException, DatabaseConnectionException или любое другое созданное вами пользовательское исключение. Это делает вашу обработку ошибок более точной, а ваш код — более удобным в сопровождении.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите один входной параметр: строку, представляющую имя класса исключения. Этот ввод будет состоять из одного слова, которое должно быть использовано в качестве имени для вашего пользовательского класса исключения (например: NegativeBalanceException или InvalidUsernameException).
Прочитайте входные данные и создайте пользовательский класс исключения, используя предоставленное имя. Ваш пользовательский класс исключения должен наследоваться от базового класса PHP Exception. После создания класса выведите "Custom exception created: ", а затем имя класса, которое вы получили на вход.
Формат входных данных: Одна строка, содержащая строку, представляющую имя класса исключения (например: InvalidAgeException)
Ожидаемый результат: Custom exception created: за которым следует имя класса исключения
Шпаргалка
Чтобы создать пользовательские исключения в PHP, расширьте базовый класс Exception, используя ключевое слово extends:
<?php
class InvalidEmailException extends Exception {
// Класс может быть пустым — он наследует всё от Exception
}
// Вы также можете добавить пользовательские свойства или методы
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Пользовательские исключения предоставляют более конкретные и осмысленные сообщения об ошибках, позволяя перехватывать определенные типы исключений вместо общих объектов Exception. Это делает обработку ошибок более точной, а код — более удобным в сопровождении.
Попробуйте сами
<?php
// Чтение имени класса исключения
$className = trim(fgets(STDIN));
// TODO: Напишите ниже свой код для создания пользовательского класса исключения
// Вывод результата
echo "Custom exception created: " . $className;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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'Итоги: Сортировка таблицы лидеров