package
0.0.0-20241220153043-cbee1828b161
Repository: https://github.com/alivewel/go.git
Documentation: pkg.go.dev
# README
Реализовать функцию, которая возвращает ошибку, не используя импорт других библиотек
type myError struct {}
func (e *myError) Error() string {
return "my error"
}
func handle() error {
return &myError{}
}
func main() {
err := handle()
if err != nil {
println(err.Error())
}
}
- Создаем собственную структуру ошибки
myError
. - Реализуем интерфейс
error
с помощью методаError()
, который возвращаетstring
. Это необходимо, чтобыmyError
удовлетворял интерфейсуerror
, который требует удовлетворения единственного методаError()
, который возвращаетstring
. - Функция
handle()
имитирует работу обычной функции, которая возвращает ошибку. Она возвращает указатель на экземплярmyError
. ПосколькуmyError
реализует интерфейсerror
, функцияhandle()
возвращает значение типаerror
. - В
main
, происходит вызов функцииhandle()
точно также, как мы обычно вызываем любую другую функцию с возвратом ошибки. После проверки наnil
, мы распечатываем ошибку. В нашем случае, у нас всегда ошибка не равнаnil
, и мы распечатываемmy error
.