Kaynağa Gözat

feat: add Wrap and Wrapf in errorx (#2126)

Kevin Wan 2 yıl önce
ebeveyn
işleme
e672b3f8e1
4 değiştirilmiş dosya ile 52 ekleme ve 0 silme
  1. 21 0
      core/errorx/wrap.go
  2. 18 0
      core/errorx/wrap_test.go
  3. 7 0
      gateway/config.go
  4. 6 0
      gateway/server.go

+ 21 - 0
core/errorx/wrap.go

@@ -0,0 +1,21 @@
+package errorx
+
+import "fmt"
+
+// Wrap returns an error that wraps err with given message.
+func Wrap(err error, message string) error {
+	if err == nil {
+		return nil
+	}
+
+	return fmt.Errorf("%s: %w", message, err)
+}
+
+// Wrapf returns an error that wraps err with given format and args.
+func Wrapf(err error, format string, args ...interface{}) error {
+	if err == nil {
+		return nil
+	}
+
+	return fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), err)
+}

+ 18 - 0
core/errorx/wrap_test.go

@@ -0,0 +1,18 @@
+package errorx
+
+import (
+	"errors"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestWrap(t *testing.T) {
+	assert.Nil(t, Wrap(nil, "test"))
+	assert.Equal(t, "foo: bar", Wrap(errors.New("bar"), "foo").Error())
+}
+
+func TestWrapf(t *testing.T) {
+	assert.Nil(t, Wrapf(nil, "%s", "test"))
+	assert.Equal(t, "foo bar: quz", Wrapf(errors.New("quz"), "foo %s", "bar").Error())
+}

+ 7 - 0
gateway/config.go

@@ -0,0 +1,7 @@
+package gateway
+
+import "github.com/zeromicro/go-zero/rest"
+
+type GatewayConf struct {
+	rest.RestConf
+}

+ 6 - 0
gateway/server.go

@@ -0,0 +1,6 @@
+package gateway
+
+type Server struct {
+}
+
+func MustNewServer() {}