Нахождение здесь означает, что вы хотите получить знания о написании пользовательских ошибок в 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 утра (шутки говорят 😆)