+ errlist

This commit is contained in:
gazebo
2019-07-22 13:33:49 +08:00
parent 17789d4869
commit 7ac11981b3

37
utils/errlist/errlist.go Normal file
View 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
}