Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.
Как вернуть ошибку из функции
Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо реализовать возврат ошибки из функции, используя только стандартные возможности языка Go, без привлечения внешних библиотек.
func main() {
println(handle())
}
func handle() error {
}
Ответ
Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.
Вариант без импортов:
type textError string
func (e textError) Error() string { return string(e) }
func handle() error { return textError("operation failed") }
func main() {
if err := handle(); err != nil { println(err.Error()) }
}
Встроенный println(err) не предназначен для пользовательского форматирования интерфейса и не обязан вызывать Error. Для нормального приложения обычно используют fmt или логгер, а nil возвращают в случае успеха.