Кто обычно занимается проектированием исключений (Exception) в проекте?

«Кто обычно занимается проектированием исключений (Exception) в проекте?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Нет, проектирование исключений — это командная работа, а не задача исключительно Team Lead.

Кто участвует:

  • Разработчики: Создают кастомные исключения для конкретных бизнес-сценариев и ошибок.
  • Архитектор/Team Lead: Определяет общую стратегию (например, использование checked/unchecked исключений, построение иерархии).
  • Процесс Code Review: Коллективно выявляет избыточные, недостающие или некорректно спроектированные исключения.

Пример на Java:

// Разработчик создает кастомное unchecked исключение для бизнес-логики
class PaymentFailedException extends RuntimeException {
    public PaymentFailedException(String message, Throwable cause) {
        super(message, cause);
    }
}

// Архитектор проверяет, что выбрана верная родительская категория (RuntimeException, а не Exception)

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