
Баг: Игнорирование возвращаемой ошибки
Что делают:
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Загрузка...