Documentation
¶
Index ¶
- Constants
- Variables
- func InitDefaultOptions(handler OptionsHandler)
- func New(kind ErrorKind, message string, opts ...Option) *mrerrors.ProtoError
- func NewKindInternal(message string, opts ...Option) *mrerrors.ProtoError
- func NewKindSystem(message string, opts ...Option) *mrerrors.ProtoError
- func NewKindUser(code, message string, opts ...Option) *mrerrors.ProtoError
- type CustomError
- type CustomErrors
- type ErrorHandler
- type ErrorKind
- type MessageReplacer
- type Option
- func WithArgsReplacer(value func(message string) mrerrors.MessageReplacer) Option
- func WithCaller(value func() mrerrors.StackTracer) Option
- func WithCode(value string) Option
- func WithDefaultArgsReplacer() Option
- func WithDefaultCaller() Option
- func WithDefaultOnCreated() Option
- func WithDisabledCaller() Option
- func WithDisabledOnCreated() Option
- func WithOnCreated(value func(ctx context.Context, err error) (instanceID string)) Option
- type OptionsHandler
- type OptionsHandlerFunc
- type StackTracer
Constants ¶
const ( ErrorKindUnknown = ErrorKind(0) ErrorKindInternal = mrerrors.ErrorKindInternal ErrorKindSystem = mrerrors.ErrorKindSystem ErrorKindUser = mrerrors.ErrorKindUser ErrorKindUserWithWrappedError = mrerrors.ErrorKindUser + 1 // пользовательская ошибка в которой находится вложенная ошибка )
Виды ошибок.
Variables ¶
var ( // ErrCustomErrorHasNilError - пользовательская ошибка содержит nil. ErrCustomErrorHasNilError = NewKindInternal("custom error has an nil error") // ErrCustomErrorHasInternalError - пользовательская ошибка содержит внутреннюю ошибку. ErrCustomErrorHasInternalError = NewKindInternal("custom error has an internal error") // ErrCustomErrorHasSystemError - пользовательская ошибка содержит системную ошибку. ErrCustomErrorHasSystemError = NewKindSystem("custom error has an system error") // ErrCustomErrorHasNoWrappedError - пользовательская ошибка содержит необработанную ошибку. ErrCustomErrorHasNoWrappedError = NewKindInternal("custom error has no wrapped error") )
Functions ¶
func InitDefaultOptions ¶ added in v0.13.0
func InitDefaultOptions(handler OptionsHandler)
InitDefaultOptions - с помощью указанного обработчика одноразово присваивает опции по умолчанию всем созданным через New() ошибкам в момент инициализации приложения, при этом, не изменяет опции, которые были явно переданы в конструктор такой ошибки. После этого, этот обработчик сохраняется и начинает вызываться каждый раз в момент создания очередной такой ошибки.
func New ¶
func New(kind ErrorKind, message string, opts ...Option) *mrerrors.ProtoError
New - создаёт фабрику ProtoError для создания ошибок указанного типа с указанными опциями.
func NewKindInternal ¶ added in v0.14.0
func NewKindInternal(message string, opts ...Option) *mrerrors.ProtoError
NewKindInternal - создаёт фабрику ProtoError для создания ошибок типа Internal с указанными опциями.
func NewKindSystem ¶ added in v0.14.0
func NewKindSystem(message string, opts ...Option) *mrerrors.ProtoError
NewKindSystem - создаёт фабрику ProtoError для создания ошибок типа System с указанными опциями.
func NewKindUser ¶ added in v0.14.0
func NewKindUser(code, message string, opts ...Option) *mrerrors.ProtoError
NewKindUser - создаёт фабрику ProtoError для создания ошибок типа User с указанными опциями.
Types ¶
type CustomError ¶ added in v0.7.0
type CustomError struct {
// contains filtered or unexported fields
}
CustomError - пользовательская ошибка с уточнённым кодом ошибки. Например, код может выглядеть следующим образом: EmailAlreadyExists/userEmail Где EmailAlreadyExists - пользовательская ошибка, userEmail - поле, в которой произошла ошибка.
func NewCustomError ¶ added in v0.7.0
func NewCustomError(customCode string, err error) *CustomError
NewCustomError - создаёт объект CustomError. Если аргумент err содержит любую ошибку, которая не соответствует типу ErrorKindUser то вся эта ошибка будет считаться невалидной.
func (*CustomError) CustomCode ¶ added in v0.10.0
func (e *CustomError) CustomCode() string
CustomCode - возвращает персональный код ошибки.
func (*CustomError) Err ¶ added in v0.10.0
func (e *CustomError) Err() *mrerrors.InstantError
Err - возвращает вложенную ошибку.
func (*CustomError) Error ¶ added in v0.7.0
func (e *CustomError) Error() string
Error - возвращает ошибку в виде строки.
func (*CustomError) IsValid ¶ added in v0.10.2
func (e *CustomError) IsValid() bool
IsValid - возвращает true, если внутри содержится пользовательская ошибка, все остальные ошибки считаются невалидными, программисту необходимо позаботиться их обернуть в пользовательский вид ошибки.
type CustomErrors ¶ added in v0.10.1
type CustomErrors []*CustomError
CustomErrors - список пользовательских ошибок.
func (CustomErrors) Error ¶ added in v0.10.1
func (es CustomErrors) Error() string
Error - возвращает список пользовательских ошибок в виде строки.
type ErrorHandler ¶ added in v0.14.0
type ErrorHandler struct {
// contains filtered or unexported fields
}
ErrorHandler - обработчик ошибок какого либо сервиса или приложения в целом.
func NewErrorHandler ¶ added in v0.14.0
func NewErrorHandler(handler func(ctx context.Context, analyzedKind ErrorKind, err error), wrapper unknownErrorWrapper) *ErrorHandler
NewErrorHandler - создаёт объект ErrorHandler.
func (*ErrorHandler) Handle ¶ added in v0.14.0
func (h *ErrorHandler) Handle(ctx context.Context, err error)
Handle - версия метода HandleWith без вызова дополнительного обработчика.
func (*ErrorHandler) HandleWith ¶ added in v0.14.0
func (h *ErrorHandler) HandleWith(ctx context.Context, err error, extraHandler func(analyzedKind ErrorKind, err error))
HandleWith - анализирует ошибку, если ошибка типа ErrorKindUnknown, то оборачивает её, далее вызывает основной обработчик, который был указан в конструкторе, а затем обработчик extraHandler. В результате вызова этих обработчиков ошибка может быть, например, каким-то способом залогирована / отправлена во внешний источник / использована для правильного формирования ответа серверу и т.д.
type MessageReplacer ¶ added in v0.14.0
type MessageReplacer = mrerrors.MessageReplacer
MessageReplacer - алиас mrerrors.MessageReplacer.
type Option ¶ added in v0.14.0
type Option func(o *options)
Option - настройка объекта mrerrors.ProtoError.
func WithArgsReplacer ¶ added in v0.14.0
func WithArgsReplacer(value func(message string) mrerrors.MessageReplacer) Option
WithArgsReplacer - устанавливает функцию возвращающую объект для замены аргументов, указанных в сообщении на их конкретные значения.
func WithCaller ¶ added in v0.14.0
func WithCaller(value func() mrerrors.StackTracer) Option
WithCaller - устанавливает функцию, которая создаёт стек вызовов при создании экземпляра ошибки.
func WithDefaultArgsReplacer ¶ added in v0.14.0
func WithDefaultArgsReplacer() Option
WithDefaultArgsReplacer - устанавливает функцию возвращающую объект по умолчанию для замены аргументов, указанных в сообщении на их конкретные значения.
func WithDefaultCaller ¶ added in v0.14.0
func WithDefaultCaller() Option
WithDefaultCaller - устанавливает формирование стека вызовов с опциями по умолчанию при создании экземпляра ошибки.
func WithDefaultOnCreated ¶ added in v0.14.0
func WithDefaultOnCreated() Option
WithDefaultOnCreated - устанавливает обработчик по умолчанию события создания экземпляра ошибки, который генерирует уникальный ID ошибки и возвращает его.
func WithDisabledCaller ¶ added in v0.14.0
func WithDisabledCaller() Option
WithDisabledCaller - отключает формирование стека вызовов при создании экземпляра ошибки.
func WithDisabledOnCreated ¶ added in v0.14.0
func WithDisabledOnCreated() Option
WithDisabledOnCreated - отключает обработчик события создания экземпляра ошибки.
type OptionsHandler ¶ added in v0.14.0
OptionsHandler - обработчик формирования списка опций для указанных типов ошибок.
type OptionsHandlerFunc ¶ added in v0.14.0
OptionsHandlerFunc - обработчик формирования списка опций в виде функции.
func DefaultOptionsHandler ¶ added in v0.14.0
func DefaultOptionsHandler() OptionsHandlerFunc
DefaultOptionsHandler - возвращает обработчик по умолчанию для формирования опций по умолчанию, необходимый для вызова InitDefaultOptions().
type StackTracer ¶ added in v0.9.0
type StackTracer = mrerrors.StackTracer
StackTracer - алиас mrerrors.StackTracer.