Как метод `withdraw` должен обрабатывать некорректные входные аргументы, в частности нулевую или отрицательную сумму?

withdraw должен отклонять нулевую и отрицательную сумму до расчёта купюр и изменения остатков. Также проверяют поддерживаемую валюту, допустимые единицы суммы и возможность точной выдачи.

Короткий ответ

Что ответить на собеседовании

withdraw должен отклонять нулевую и отрицательную сумму до расчёта купюр и изменения остатков. Также проверяют поддерживаемую валюту, допустимые единицы суммы и возможность точной выдачи.

Подробный разбор

Ответ с пояснениями

withdraw должен отклонять нулевую и отрицательную сумму до расчёта купюр и изменения остатков. Также проверяют поддерживаемую валюту, допустимые единицы суммы и возможность точной выдачи.

Для ошибки аргумента подходит IllegalArgumentException либо доменная ошибка по контракту API. Невозможность набрать сумму из текущих купюр — отдельный бизнес-результат, не то же самое, что некорректный ввод. Во всех случаях отказа запас должен остаться неизменным. Валидацию и списание нельзя разрывать так, чтобы конкурентная выдача делала проверку устаревшей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее