Golang имеет свой собственный взгляд на обработку ошибок, который после нескольких лет в php непривычен.
Но недавно я открыла для себя мир кастомных ошибок в го, и мир стал чуточку лучше и контролируемей.
Код примера: https://github.com/militska/golangexp/blob/master/custom_errors/main.go
Создаем структуры для новых типов ошибок (он должен соответствовать интерфейсу error)
Пример использования:
Обратите внимание на тип возвращаемого значения: “error”, это не структура, это интерфейс. Данный метод сможет вернуть различные типы ошибок, и клиент этого метода
Вызов метода с такими ошибками стандартный, но можно иначе обработать
Пример обработки кастомной ошибки: