Go использует явный паттерн обработки ошибок, где функции возвращают ошибки как значения вместо использования исключений. Такой подход способствует написанию понятного и защищённого кода.
Стандартное соглашение Go — возвращать ошибку как последнее возвращаемое значение из функции:
func readFile(filename string) ([]byte, error) {
// реализация функции
}
Ты должен явно проверить, произошла ли ошибка, используя паттерн if err != nil:
data, err := readFile("file.txt")
if err != nil {
return err
}
fmt.Errorf() или функции errors.Is() и errors.As(), чтобы добавить контекстGo предоставляет несколько способов работы с ошибками:
error для базовой обработки ошибокerrors.New() для создания простых ошибокfmt.Errorf() для форматированных сообщений об ошибках с контекстомpanic() и recover() только для действительно исключительных случаевТакой явный подход делает обработку ошибок прозрачной и помогает разработчикам писать более надёжный код.
В Go значение ошибки всегда должно возвращаться первым значением из функции, чтобы следовать стандартному соглашению.
Новый — ещё не проверен сообществом
Вы