Когда использовать исключения, а когда коды ошибок?

Ответ

Исключения предпочтительнее в PHP:

  • Невозможно игнорировать (в отличие от кодов)
  • Содержат stack trace для отладки
  • Можно группировать по иерархии
  • Разделяют happy path и error handling

Коды ошибок (return values) допустимы когда:

  • Ошибка ожидаема и часта (проверка валидности)
  • Вызывающий код обязан обработать результат
  • Высокопроизводительный код (исключения дорогие)
// Плохо: null как код ошибки
function find(int $id): ?User { return null; }

// Лучше: Result type или исключение
function findOrFail(int $id): User {
    return $this->repo->find($id) ?? throw new NotFoundException();
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.