Ну например, вам нужно вернуть объект, но его нет. Вы возращаете null, или бросаете на месте?
Или как что делаете при невалидном вводе
Ну, это от места зависит и от ожидаемого поведения, очевидно
Смотря где. Если это ошибка программиста то сразу panic (у меня rust). Если это не ошибка программиста и область ошибки не очень большая (кадр, запрос к фс, сети, и тп), то Result/Option.
А например, есть метод начать играть анимацию. Будет ли плохим тоном, если имени не нашлось, просто написать варнинг, и продолжить выполнение?
У тебя может быть своя семантика. Конкретно у меня в проекте - по-разному. Анимация это ресурс который мог не успеть загрузится. Но в других функциях где например обрабатывается логика боевой системы у меня паники если параметры предметов не загружены. Но там так устроены зависимости что если эти параметры не подгрузится в время то значит что-то где-то не так.
Если при ошибке высока вероятность автоматического исправления (т.е. код явно ожидает ошибку) то я бы выбрал коды возврата или их аналоги, если обработку ошибки в большинстве случаев не предполагается выполнять и после ошибки состояние программы не согласовано, то любой способ предполагающий краш
Обсуждают сегодня