147 подписчиков
🔨ошибки: почему всё выглядит просто… пока не начинаешь писать свой код
После основ большинство думает, что ошибки — это что‑то второстепенное.
Тип error есть, где‑то он возвращается — и ладно.
Но как только пишешь свой первый проект, всё резко меняется.
Например, у тебя есть функция, которая что‑то делает:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("bad input")
}
return a / b, nil
}
А в main ты видишь:
result, err := divide(10, 0)
if err != nil {
fmt.Println("failed")
}
И всё.
failed
Что упало? Где? Почему?
Что за bad input? Какой именно вход? Где искать проблему?
Это реальная боль после основ: ошибки есть, но пользы от них ноль.
Как сделать минимально лучше — и сразу полезнее
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("divide: b=0 is invalid")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println(result)
}
Теперь вывод будет таким:
error: divide: b=0 is invalid
И сразу понятно:
— что делали → делили числа
— где ошибка → в функции divide
— почему → b = 0
Минимальное изменение — а ясности в разы больше❤️
#GoПрактика
Около минуты
8 апреля