Documentation
¶
Index ¶
- type ErrorBuilder
- func (b ErrorBuilder) Errorf(format string, a ...any) error
- func (b ErrorBuilder) ExtendPrefix(suffix string) ErrorBuilder
- func (b ErrorBuilder) New(s string) error
- func (b ErrorBuilder) WithArgs(args ...any) ErrorBuilder
- func (b ErrorBuilder) WithFileLine() ErrorBuilder
- func (b ErrorBuilder) WithFunction() ErrorBuilder
- func (b ErrorBuilder) WithPrefix(s string) ErrorBuilder
- func (b ErrorBuilder) WithShortFunction() ErrorBuilder
- func (b ErrorBuilder) Wrap(err error) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrorBuilder ¶
type ErrorBuilder struct {
// Prefix добавляется перед ошибкой в итоговом сообщении.
Prefix string
// Args — пары ключ-значение, которые будут добавлены после префикса.
// Каждый ключ должен иметь соответствующее значение.
Args []any
}
ErrorBuilder накапливает контекст (префикс и аргументы), который может быть добавлен к ошибке при вызове Wrap.
func Errorf ¶
func Errorf(format string, args ...any) ErrorBuilder
Errorf создает ErrorBuilder с отформатированным сообщением-префиксом.
func NewBuilder ¶
func NewBuilder(msg string) ErrorBuilder
NewBuilder создает новый ErrorBuilder с указанным сообщением-префиксом.
func WithArgs ¶
func WithArgs(args ...any) ErrorBuilder
WithArgs создает ErrorBuilder с указанными парами "ключ-значение". При вызове с нечётным числом аргументов пропущенные значения заменяются на "<missing>". Ключи приводятся к строке с помощью fmt.Sprintf.
func WithFileLine ¶ added in v1.1.4
func WithFileLine() ErrorBuilder
WithFileLine создает новый ErrorBuilder с именем файла и номером строки,
func WithFunction ¶ added in v1.1.4
func WithFunction() ErrorBuilder
WithFunction создает новый ErrorBuilder с полным именем функции (включая путь пакета).
func WithShortFunction ¶ added in v1.1.5
func WithShortFunction() ErrorBuilder
WithShortFunction создает новый ErrorBuilder с именем функции.
func (ErrorBuilder) Errorf ¶
func (b ErrorBuilder) Errorf(format string, a ...any) error
Errorf создает ошибку с отформатированным сообщением и оборачивает её с добавленным контекстом.
Аналогично Wrap(fmt.Errorf(...)).
func (ErrorBuilder) ExtendPrefix ¶
func (b ErrorBuilder) ExtendPrefix(suffix string) ErrorBuilder
ExtendPrefix adds a suffix to the current prefix, forming a longer context chain.
func (ErrorBuilder) New ¶
func (b ErrorBuilder) New(s string) error
New создает ошибку с указанным сообщением и оборачивает её с добавленным контекстом.
Аналогично Wrap(errors.New(s)).
func (ErrorBuilder) WithArgs ¶
func (b ErrorBuilder) WithArgs(args ...any) ErrorBuilder
WithArgs добавляет пары "ключ-значение" в ErrorBuilder. Ключи приводятся к строке через fmt.Sprintf. При нечётном количестве аргументов — последнее значение будет заменено на "<missing>".
func (ErrorBuilder) WithFileLine ¶ added in v1.1.2
func (b ErrorBuilder) WithFileLine() ErrorBuilder
func (ErrorBuilder) WithFunction ¶ added in v1.1.2
func (b ErrorBuilder) WithFunction() ErrorBuilder
func (ErrorBuilder) WithPrefix ¶
func (b ErrorBuilder) WithPrefix(s string) ErrorBuilder
WithPrefix добавляет префикс к ErrorBuilder. Повторные вызовы добавляют новый текст перед уже существующим через ": ".
func (ErrorBuilder) WithShortFunction ¶ added in v1.1.5
func (b ErrorBuilder) WithShortFunction() ErrorBuilder
func (ErrorBuilder) Wrap ¶
func (b ErrorBuilder) Wrap(err error) error
Wrap оборачивает переданную ошибку с добавленным префиксом и аргументами.
Поведение:
- Если err == nil, метод немедленно возвращает nil и ничего не делает;
- Если задан Prefix, он добавляется перед ошибкой через ": ";
- Если заданы аргументы, они добавляются в фигурных скобках после префикса, ключ=значение разделены запятыми;
- Финальный формат: "<Prefix>: {key1=val1, key2=val2}: оригинальная ошибка".
Пример:
err := NewBuilder("context").WithArgs("user", 42).Wrap(someErr)
// context: {user=42}: someErr