mrerr

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2024 License: Apache-2.0 Imports: 9 Imported by: 8

Documentation

Index

Constants

View Source
const (
	// ErrorCodeInternal - обобщённый код ошибки: внутренняя ошибка приложения.
	ErrorCodeInternal = "errInternal"

	// ErrorCodeSystem - обобщённый код ошибки: системная ошибка приложения.
	ErrorCodeSystem = "errSystem"
)

Variables

View Source
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 New

func New(code, message string, args ...any) *AppError

New - создаётся объект AppError.

func (*AppError) Code added in v0.7.0

func (e *AppError) Code() string

Code - возвращает код ошибки.

func (*AppError) Error

func (e *AppError) Error() string

Error - возвращает ошибку в виде строки.

func (*AppError) InstanceID added in v0.9.0

func (e *AppError) InstanceID() string

InstanceID - возвращает уникальный идентификатор случившейся ошибки. Но только если в фабрике, породившей эту ошибку, был установлен генератор ID ошибок.

func (*AppError) Is

func (e *AppError) Is(err error) bool

Is - проверяется что ошибка с указанным кодом (для возможности использования errors.Is).

func (*AppError) Kind

func (e *AppError) Kind() ErrorKind

Kind - возвращает тип ошибки.

func (*AppError) Translate added in v0.1.1

func (e *AppError) Translate(t Translator) mrmsg.ErrorMessage

Translate - translate error message for user

func (*AppError) Unwrap

func (e *AppError) Unwrap() error

Unwrap - возвращает вложенную ошибку (для возможности использования errors.Is).

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) Is

func (e *AppErrorFactory) Is(err error) bool

Is - see: AppError::Is.

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 с прикреплённым к нему именованным параметром.

func (*AppErrorFactory) Wrap

func (e *AppErrorFactory) Wrap(err error, args ...any) *AppError

Wrap - возвращает ошибку с вложенной в неё указанной ошибки.

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
)

func (ErrorKind) String added in v0.5.0

func (k ErrorKind) String() string

String - возвращает вид ошибки в виде строки.

type ErrorOptions added in v0.9.0

type ErrorOptions struct {
	Kind            ErrorKind
	WithIDGenerator bool
	WithCaller      bool
}

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

type StackTracer interface {
	Count() int
	FileLine(index int) (file string, line int)
}

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 - интерфейс для работы с переводом ошибок на различные языки.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL