From fc3dac5190a121a562e09ca734e1f716240db32d Mon Sep 17 00:00:00 2001 From: "F." Date: Thu, 15 May 2025 15:33:41 +0200 Subject: [PATCH 1/2] docs(getting-started): add example for creating errors with context and logging --- docs/docs/getting-started/installation.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/docs/getting-started/installation.md b/docs/docs/getting-started/installation.md index 38e5fef..fc58a4d 100644 --- a/docs/docs/getting-started/installation.md +++ b/docs/docs/getting-started/installation.md @@ -20,6 +20,13 @@ err := ewrap.New("database connection failed") if err != nil { return ewrap.Wrap(err, "failed to process request") } + +// Create a new error with context +err := ewrap.Newf("operation failed: %w", err) + ewrap.WithContext(ctx, ewrap.ErrorTypeDatabase, ewrap.SeverityCritical), + ewrap.WithLogger(logger)) + +err.Log() ``` ### Advanced Error Context From 117a83b559bf5e83bc803482acb1ae21c9806045 Mon Sep 17 00:00:00 2001 From: "F." Date: Thu, 5 Jun 2025 12:42:28 +0200 Subject: [PATCH 2/2] feat: add err or nil --- pkg/ewrap/error_group.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/ewrap/error_group.go b/pkg/ewrap/error_group.go index c654eb4..9522984 100644 --- a/pkg/ewrap/error_group.go +++ b/pkg/ewrap/error_group.go @@ -131,6 +131,15 @@ func (eg *ErrorGroup) Error() string { } } +// ErrorOrNil returns the ErrorGroup itself if it contains errors, or nil if empty. +func (eg *ErrorGroup) ErrorOrNil() error { + if eg.HasErrors() { + return eg + } + + return nil +} + // Errors returns a copy of all errors in the group. func (eg *ErrorGroup) Errors() []error { eg.mu.RLock()