https://github.com/wiggin77/merror
Multiple Error aggregator for Go.
https://github.com/wiggin77/merror
golang golang-errors golang-package
Last synced: 3 months ago
JSON representation
Multiple Error aggregator for Go.
- Host: GitHub
- URL: https://github.com/wiggin77/merror
- Owner: wiggin77
- License: mit
- Created: 2018-07-28T02:29:14.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-05-29T18:21:04.000Z (almost 2 years ago)
- Last Synced: 2025-02-02T06:11:21.476Z (4 months ago)
- Topics: golang, golang-errors, golang-package
- Language: Go
- Homepage:
- Size: 37.1 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# merror
[](https://godoc.org/github.com/wiggin77/merror)
Multiple Error aggregator for Go.
## Usage
```go
func foo() error {
merr := merror.New()if err := DoSomething(); err != nil {
merr.Append(err)
}return merr.ErrorOrNil()
}
```A bounded `merror` can be used to guard against memory ballooning.
```go
func bar() error {
merr := merror.NewWithCap(10)for i := 0; i < 15; i++ {
if err := DoSomething(); err != nil {
merr.Append(err)
}
}fmt.Printf("Len: %d, Overflow: %d", merr.Len(), merr.Overflow())
// Len: 10, Overflow: 5return merr.ErrorOrNil()
}
```## errors.Is
If any of the errors appended to a `merror` match the target error passed to `errors.Is(err, target error)` then true is returned.
## errors.As
If any of the errors appended to a `merror` match the target type passed to `errors.As(err error, target any)` then true is returned and the target is set to the matching error.