Sobes.tech
Senior

Cuéntenos sobre el manejo de errores en Go. ¿Qué es un error típico? ¿En qué se diferencia el manejo de errores en Go de otros lenguajes?

sobes.tech AI

Respuesta de la IA

В Go обработка ошибок основана на возвращении значения ошибки (error) из функций, а не на исключениях, как в большинстве других языков.

Типичная ошибка в Go — это значение типа error, которое реализует интерфейс:

type error interface {
    Error() string
}

Функция, которая может завершиться с ошибкой, обычно возвращает два значения: результат и ошибку:

func ReadFile(name string) ([]byte, error) {
    // ...
}

Обработка ошибок происходит явно:

data, err := ReadFile("file.txt")
if err != nil {
    // обработка ошибки
    log.Fatal(err)
}
// использование data

Отличия от других языков:

  • Нет исключений (try/catch). Ошибки обрабатываются явно и локально.
  • Это повышает читаемость и предсказуемость кода, так как видно, где именно может возникнуть ошибка.
  • Отсутствие скрытых путей выполнения.

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