🟢 Лёгкий · 1 очк. Обработка ошибок
Какой интерфейс должен реализовать тип, чтобы быть ошибкой?
A Stringer
B error (метод Error() string)
C fmt.Error
D Throwable
Объяснение вопроса

Интерфейс error из пакета errors содержит один метод: Error() string. Любой тип с этим методом является ошибкой.

Минимальная реализация

type MyError string

func (e MyError) Error() string {
    return string(e)
}

return MyError("something went wrong")

Ошибка с полями

type ValidationError struct {
    Field string
    Msg   string
}

func (e *ValidationError) Error() string {
    return e.Field + ": " + e.Msg
}

Такие типы можно возвращать как error, проверять через errors.As и оборачивать через fmt.Errorf("... %w", err).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.