УрокПроверено 2026Локальный прогресс

Исключения и восстановление

Исключение переносит ошибку к уровню, который способен принять осмысленное решение.

throw new DomainException('Order is closed');

Уровни

Доменное правило выбрасывает предметное исключение. Входной адаптер превращает его в HTTP-ответ или сообщение CLI. Сам объект не знает про HTML.

Перехват

Перехватывайте исключение, если можете восстановиться, добавить безопасный контекст или преобразовать тип. Пустой catch скрывает проблему.

finally

finally выполняется независимо от результата и подходит для освобождения ресурса. Транзакцию чаще оформляют явным commit/rollback в try/catch.

Безопасность

Не показывайте production-пользователю stack trace, DSN и локальные пути. Сохраняйте диагностический идентификатор в закрытом журнале.

Задание

Спроектируйте исключения InvalidQuantity и OutOfStock и решите, какие HTTP-коды получает API.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie