В Go кастомная ошибка создаётся путём реализации встроенного интерфейса error. Этот интерфейс требует всего один метод: Error(), который возвращает строковое представление ошибки.
Чтобы создать кастомную ошибку, следуй такому паттерну:
type MyError struct {
Msg string
}
func (e *MyError) Error() string {
return e.Msg
}
(e *MyError) для реализации метода на типе ошибкиError(), который возвращает строку, описывающую ошибкуПосле реализации можешь использовать свою кастомную ошибку как обычную ошибку Go:
err := &MyError{Msg: "something went wrong"}
if err != nil {
fmt.Println(err.Error())
}
errors.New() или fmt.Errorf() для простых ошибок на основе строкИнтерфейс error в Go требует реализации как метода Error(), так и метода String() для создания пользовательского типа ошибки.
Новый — ещё не проверен сообществом
Вы