+ errlist
This commit is contained in:
37
utils/errlist/errlist.go
Normal file
37
utils/errlist/errlist.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package errlist
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ErrList struct {
|
||||
errList []error
|
||||
}
|
||||
|
||||
func New() *ErrList {
|
||||
return &ErrList{}
|
||||
}
|
||||
|
||||
func (l *ErrList) AddErr(err error) *ErrList {
|
||||
if err != nil {
|
||||
l.errList = append(l.errList, err)
|
||||
}
|
||||
return l
|
||||
}
|
||||
|
||||
func (l *ErrList) GetErrListAsOne() (err error) {
|
||||
errLen := len(l.errList)
|
||||
if errLen > 0 {
|
||||
if errLen == 1 {
|
||||
err = l.errList[0]
|
||||
} else {
|
||||
errStrList := make([]string, errLen)
|
||||
for k, v := range l.errList {
|
||||
errStrList[k] = v.Error()
|
||||
}
|
||||
err = fmt.Errorf("总共%d个错误,详情如下:\n%s", errLen, strings.Join(errStrList, ",\n"))
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user