Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Игнорирование возвращаемой ошибки

Что делают:

num, _ := strconv.Atoi(input)
total := num + 10

Почему это опасно:
Если в строке input окажется "abc", Atoi вернёт 0 и ошибку. Проигнорировав ошибку, вы получите 0, а затем 0 + 10 = 10. Программа не упадёт, но результат будет бессмысленным. В реальных приложениях такие ошибки приводят к неверным расчётам, которые трудно отловить.

Пример последствий:

  • Пользователь ввел "сто" вместо 100. Программа спишет 10 единиц, а не 110.

  • В логах парсится ID заказа, но там "неизвестно" - вы получите ID=0 и обратитесь к несуществующей записи.

Как правильно:

num, err := strconv.Atoi(input)
if err != nil {
    // Логируем ошибку, выводим сообщение пользователю, используем значение по умолчанию и т.п.
    fmt.Fprintln(os.Stderr, "Ошибка парсинга:", err)
    return
}
total := num + 10

Загрузка...