mirror of https://github.com/q191201771/naza
[feat] package nazaerrors: 增加Wrap函数,用于封装error
parent
e96ce43b65
commit
7588a6d19b
@ -0,0 +1,40 @@
|
||||
// Copyright 2021, Chef. All rights reserved.
|
||||
// https://github.com/q191201771/naza
|
||||
//
|
||||
// Use of this source code is governed by a MIT-style license
|
||||
// that can be found in the License file.
|
||||
//
|
||||
// Author: Chef (191201771@qq.com)
|
||||
|
||||
// +build go1.13
|
||||
|
||||
package nazaerrors
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func Wrap(err error) error {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
_, file, line, _ := runtime.Caller(1)
|
||||
s := filepath.Base(file)
|
||||
return fmt.Errorf("%w(%s:%d)", err, s, line)
|
||||
}
|
||||
|
||||
func Unwrap(err error) error {
|
||||
return errors.Unwrap(err)
|
||||
}
|
||||
|
||||
func Is(err, target error) bool {
|
||||
return errors.Is(err, target)
|
||||
}
|
||||
|
||||
func As(err error, target interface{}) bool {
|
||||
return errors.As(err, target)
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
// Copyright 2021, Chef. All rights reserved.
|
||||
// https://github.com/q191201771/naza
|
||||
//
|
||||
// Use of this source code is governed by a MIT-style license
|
||||
// that can be found in the License file.
|
||||
//
|
||||
// Author: Chef (191201771@qq.com)
|
||||
|
||||
// +build go1.13
|
||||
|
||||
package nazaerrors
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/q191201771/naza/pkg/assert"
|
||||
|
||||
"github.com/q191201771/naza/pkg/nazalog"
|
||||
)
|
||||
|
||||
func TestWrap(t *testing.T) {
|
||||
err := Wrap(io.EOF)
|
||||
nazalog.Debugf("%+v", err)
|
||||
assert.Equal(t, true, errors.Is(err, io.EOF))
|
||||
err = Wrap(err)
|
||||
nazalog.Debugf("%+v", err)
|
||||
assert.Equal(t, true, errors.Is(err, io.EOF))
|
||||
}
|
Loading…
Reference in New Issue