Documentation ¶
Index ¶
Constants ¶
const ( // ErrorCodeInternal - обобщённый код ошибки: внутренняя ошибка приложения. ErrorCodeInternal = "errInternal" // ErrorCodeSystem - обобщённый код ошибки: системная ошибка приложения. ErrorCodeSystem = "errSystem" )
Variables ¶
var ( // GlobalIDGeneratorFunc - глобальный объект для генерации ID экземпляра ошибки, // который может быть переопределён. GlobalIDGeneratorFunc IDGeneratorFunc = generateInstanceID // GlobalCallerFunc - глобальный объект для формирования текущего стека вызовов, // который может быть переопределён. GlobalCallerFunc CallerFunc = func() StackTracer { return newStackTrace() } // PrepareErrorTypeFunc - формирует тип ошибки на основе указанных для неё опций. PrepareErrorTypeFunc = func(opts ErrorOptions) ErrorType { etype := ErrorType{ Kind: opts.Kind, } if opts.WithIDGenerator { etype.GenerateIDFunc = func() string { return GlobalIDGeneratorFunc() } } if opts.WithCaller { etype.CallerFunc = func() StackTracer { return GlobalCallerFunc() } } return etype } // ErrorTypeInternal - базовые настройки для типа "внутренняя ошибка приложения". ErrorTypeInternal = PrepareErrorTypeFunc(ErrorOptions{ Kind: ErrorKindInternal, WithIDGenerator: true, WithCaller: true, }) // ErrorTypeInternalNotice - настройки для типа "внутреннее предупреждение", // которое, в некоторых случаях, может стать поводом для реальной ошибки. ErrorTypeInternalNotice = PrepareErrorTypeFunc(ErrorOptions{ Kind: ErrorKindInternal, }) // ErrorTypeSystem - базовые настройки для типа "системная ошибка приложения". ErrorTypeSystem = PrepareErrorTypeFunc(ErrorOptions{ Kind: ErrorKindSystem, WithIDGenerator: true, WithCaller: true, }) // ErrorTypeUser - базовые настройки для типа "пользовательская ошибка". ErrorTypeUser = PrepareErrorTypeFunc(ErrorOptions{ Kind: ErrorKindUser, }) // ErrorTypeUserWithCaller - настройки для типа "пользовательская ошибка", // при котором требуется иноформация для фиксации ошибки. ErrorTypeUserWithCaller = PrepareErrorTypeFunc(ErrorOptions{ Kind: ErrorKindUser, WithIDGenerator: true, WithCaller: true, }) )
Functions ¶
This section is empty.
Types ¶
type AppError ¶
type AppError struct {
// contains filtered or unexported fields
}
AppError - ошибка с поддержкой параметров, ID экземпляра ошибки и стека вызовов.
func (*AppError) InstanceID ¶ added in v0.9.0
InstanceID - возвращает уникальный идентификатор случившейся ошибки. Но только если в фабрике, породившей эту ошибку, был установлен генератор ID ошибок.
func (*AppError) Is ¶
Is - проверяется что ошибка с указанным кодом (для возможности использования errors.Is).
func (*AppError) Translate ¶ added in v0.1.1
func (e *AppError) Translate(t Translator) mrmsg.ErrorMessage
Translate - translate error message for user
type AppErrorFactory ¶
type AppErrorFactory struct {
// contains filtered or unexported fields
}
AppErrorFactory - фабрика ошибок, с поддержкой типов, параметров, формирования стека вызовов и с возможностью wrap ошибок.
func NewFactory ¶
func NewFactory(code string, etype ErrorType, message string) *AppErrorFactory
NewFactory - создаётся объект AppErrorFactory.
func (*AppErrorFactory) Code ¶ added in v0.7.0
func (e *AppErrorFactory) Code() string
Code - возвращает код ошибки.
func (*AppErrorFactory) New ¶
func (e *AppErrorFactory) New(args ...any) *AppError
New - создаётся объект AppError с использованием параметров фабрики.
func (*AppErrorFactory) WithAttr ¶ added in v0.7.0
func (e *AppErrorFactory) WithAttr(name string, value any) *AppErrorFactory
WithAttr - возвращает AppErrorFactory с прикреплённым к нему именованным параметром.
type CallerFunc ¶ added in v0.9.0
type CallerFunc func() StackTracer
CallerFunc - функция получения стека вызовов.
type CustomError ¶ added in v0.7.0
type CustomError struct {
// contains filtered or unexported fields
}
CustomError - ошибка, которую допустимо отображать пользователю.
func NewCustomError ¶ added in v0.7.0
func NewCustomError(code string, err error) *CustomError
NewCustomError - создаётся объект CustomError.
func NewCustomErrorAppError ¶ added in v0.7.0
func NewCustomErrorAppError(code string, err *AppError) *CustomError
NewCustomErrorAppError - создаётся объект CustomError на основе AppError.
func NewCustomErrorMessage ¶ added in v0.7.0
func NewCustomErrorMessage(code, message string) *CustomError
NewCustomErrorMessage - создаётся объект CustomError на основе message.
func (*CustomError) AppError ¶ added in v0.7.0
func (e *CustomError) AppError() *AppError
AppError - возвращает вложенную ошибку, которая породила текущая ошибка.
func (*CustomError) Code ¶ added in v0.7.0
func (e *CustomError) Code() string
Code - возвращает код ошибки.
func (*CustomError) Error ¶ added in v0.7.0
func (e *CustomError) Error() string
Error - возвращает ошибку в виде строки.
type CustomErrorList ¶ added in v0.7.0
type CustomErrorList []*CustomError
CustomErrorList - список пользовательских ошибок.
func (CustomErrorList) Error ¶ added in v0.7.0
func (l CustomErrorList) Error() string
Error - возвращает список ошибок в виде строки.
type ErrorKind ¶
type ErrorKind int8
ErrorKind - вид ошибки.
const ( // ErrorKindInternal - внутренняя ошибка приложения (например: обращение по nil указателю). ErrorKindInternal ErrorKind = iota // ErrorKindSystem - системная ошибка приложения (например: проблемы с сетью, с доступом к файлу). ErrorKindSystem // ErrorKindUser - пользовательская ошибка (например: значение указанного поля некорректно). ErrorKindUser )
type ErrorOptions ¶ added in v0.9.0
ErrorOptions - опции для создания ErrorType.
type ErrorType ¶ added in v0.9.0
type ErrorType struct { Kind ErrorKind GenerateIDFunc IDGeneratorFunc CallerFunc CallerFunc }
ErrorType - тип ошибки (вид ошибки + дополнительные свойства).
type IDGeneratorFunc ¶ added in v0.9.0
type IDGeneratorFunc func() string
IDGeneratorFunc - генерация уникальных ID ошибок.
type StackTracer ¶ added in v0.9.0
StackTracer - предоставляет доступ к стеку вызовов.
type Translator ¶ added in v0.9.0
type Translator interface { HasErrorCode(code string) bool TranslateError(code, defaultMessage string, args ...mrmsg.NamedArg) mrmsg.ErrorMessage }
Translator - интерфейс для работы с переводом ошибок на различные языки.