Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Ошибки как интерфейс

Ошибки как интерфейс

Условие задачи

В функции foo(i int) error создаётся ошибка типа *MyError и возвращается как error. Однако при проверке в main() сообщение из Error() не выводится, хотя err != nil. Исправить программу так, чтобы Error() корректно возвращал сообщение об ошибке и оно отображалось.

gopackage main

import "fmt"

type MyError struct {
 data string
}

func (e *MyError) Error() string {
 return e.data
}

func main() {
 err := foo(6)
 if err != nil {
  fmt.Println("oops:", err)
 } else {
  fmt.Println("ok")
 }
}

func foo(i int) error {
 var err error
 if i > 5 {
  err = &MyError{data: "i > 5"}
 }
 return err
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта