Нахождение здесь означает, что вы хотите получить знания о написании пользовательских ошибок в golang. Это не так сложно, если вы немного знаете этот язык, если нет, я расскажу вам, как это сделать!

Во-первых, ошибка в golang — это хорошо. Я пришел в Go из C#, и там у нас были эти исключения, которые можно было сделать пользовательскими, если вы создали класс, производный от класса «Исключение». В Go мы возвращаем ошибку из функции, и вы также можете вернуть из нее свою пользовательскую ошибку (ошибка, которая будет рассматриваться как встроенная ошибка Go, что означает, что вы сможете сравнить ее с nil)

Прежде всего, нам нужно создать пользовательскую структуру:

type CustomError struct {
   Message string
   Custom  bool
}

Это просто какая-то простая структура, которая имеет два поля: Message и Custom. Существует всего одно простое правило, которому должна соответствовать структура. В Struct необходимо реализовать встроенный интерфейс ошибок.

type error interface {
    Error() string
}

Тип error — это тип интерфейса. Переменная error представляет любое значение, которое может описать себя как строку.

Итак, мы реализовали данный интерфейс следующим образом:

type CustomError struct {
   Message string
   Custom  bool
}


func (c CustomError) Error() string {
   return fmt.Sprintf("%s, and custom: %v", c.Message, c.Custom)
}

По сути, мы возвращаем форматированную строку со значениями наших полей. Затем для целей тестирования мы создадим простую функцию, которая будет вызываться, а ошибка будет обрабатываться внутри нашего файла main.

func ReturnError() error {
   return CustomError{Message: "hello",Custom: true}
}
func main() {
   err := ReturnError()
   if err != nil {
      fmt.Println(err)
   }
}

Теперь мы собираемся выполнить нашу программу, и мы видим, что все работает так, как мы хотели.

Вывод

Для создания собственной ошибки в golang не требуется много энергии. Честно говоря, эта задача проста, как встать с постели в 11 утра (шутки говорят 😆)