Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: uniform error creation #668

Merged
merged 9 commits into from
May 19, 2023
Merged
14 changes: 7 additions & 7 deletions internal/bytesconv/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@

package bytesconv

import "errors"
import "github.com/cloudwego/hertz/pkg/common/errors"

var (
errEmptyInt = errors.New("empty integer")
errUnexpectedFirstChar = errors.New("unexpected first char found. Expecting 0-9")
errUnexpectedTrailingChar = errors.New("unexpected trailing char found. Expecting 0-9")
errTooLongInt = errors.New("too long int")
errEmptyHexNum = errors.New("empty hex number")
errTooLargeHexNum = errors.New("too large hex number")
errEmptyInt = errors.NewPublic("empty integer")
welkeyever marked this conversation as resolved.
Show resolved Hide resolved
errUnexpectedFirstChar = errors.NewPublic("unexpected first char found. Expecting 0-9")
errUnexpectedTrailingChar = errors.NewPublic("unexpected trailing char found. Expecting 0-9")
errTooLongInt = errors.NewPublic("too long int")
errEmptyHexNum = errors.NewPublic("empty hex number")
errTooLargeHexNum = errors.NewPublic("too large hex number")
)
4 changes: 2 additions & 2 deletions pkg/app/server/hertz.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ package server

import (
"context"
"errors"
"os"
"os/signal"
"syscall"
"time"

"github.com/cloudwego/hertz/pkg/app/middlewares/server/recovery"
"github.com/cloudwego/hertz/pkg/common/config"
"github.com/cloudwego/hertz/pkg/common/errors"
"github.com/cloudwego/hertz/pkg/common/hlog"
"github.com/cloudwego/hertz/pkg/route"
)
Expand Down Expand Up @@ -108,7 +108,7 @@ func waitSignal(errCh chan error) error {
switch sig {
case syscall.SIGTERM:
// force exit
return errors.New(sig.String()) // nolint
return errors.NewPublic(sig.String()) // nolint
case syscall.SIGHUP, syscall.SIGINT:
hlog.SystemLogger().Infof("Received signal: %s\n", sig)
// graceful shutdown
Expand Down
4 changes: 2 additions & 2 deletions pkg/common/stackless/writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@
package stackless

import (
"errors"
"fmt"
"io"

"github.com/cloudwego/hertz/pkg/common/bytebufferpool"
"github.com/cloudwego/hertz/pkg/common/errors"
)

// Writer is an interface stackless writer must conform to.
Expand Down Expand Up @@ -137,7 +137,7 @@ func (w *writer) do(op op) error {
return err
}

var errHighLoad = errors.New("cannot compress data due to high load")
var errHighLoad = errors.NewPublic("cannot compress data due to high load")

var stacklessWriterFunc = NewFunc(writerFunc)

Expand Down
13 changes: 6 additions & 7 deletions pkg/common/test/mock/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@ package mock

import (
"bytes"
"errors"
"net"
"strings"
"time"

errs "github.com/cloudwego/hertz/pkg/common/errors"
"github.com/cloudwego/hertz/pkg/common/errors"
"github.com/cloudwego/hertz/pkg/network"
"github.com/cloudwego/netpoll"
)
Expand Down Expand Up @@ -86,7 +85,7 @@ func (m *Conn) Peek(i int) ([]byte, error) {
select {}
}
time.Sleep(m.readTimeout)
return nil, errs.ErrTimeout
return nil, errors.ErrTimeout
}
return b, err
}
Expand Down Expand Up @@ -136,7 +135,7 @@ func (m *SlowReadConn) Peek(i int) ([]byte, error) {
time.Sleep(100 * time.Millisecond)
if err != nil || len(b) != i {
time.Sleep(m.readTimeout)
welkeyever marked this conversation as resolved.
Show resolved Hide resolved
return nil, errs.ErrReadTimeout
return nil, errors.ErrReadTimeout
}
return b, err
}
Expand Down Expand Up @@ -174,7 +173,7 @@ func (m *SlowWriteConn) Flush() error {
time.Sleep(100 * time.Millisecond)
if err == nil {
time.Sleep(m.writeTimeout)
return errs.ErrWriteTimeout
return errors.ErrWriteTimeout
}
return err
}
Expand Down Expand Up @@ -251,15 +250,15 @@ func (m *StreamConn) Peek(n int) ([]byte, error) {
m.Data = m.Data[:cap(m.Data)]
return m.Data[:1], nil
}
return nil, errors.New("not enough data")
return nil, errors.NewPublic("not enough data")
}

func (m *StreamConn) Skip(n int) error {
if len(m.Data) >= n {
m.Data = m.Data[n:]
return nil
}
return errors.New("not enough data")
return errors.NewPublic("not enough data")
}

func (m *StreamConn) Release() error {
Expand Down
11 changes: 6 additions & 5 deletions pkg/common/tracer/stats/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
package stats

import (
"errors"
"sync"
"sync/atomic"

"github.com/cloudwego/hertz/pkg/common/errors"
)

// EventIndex indicates a unique event.
Expand Down Expand Up @@ -88,8 +89,8 @@ var (

// errors
var (
ErrNotAllowed = errors.New("event definition is not allowed after initialization")
ErrDuplicated = errors.New("event name is already defined")
errNotAllowed = errors.NewPublic("event definition is not allowed after initialization")
errDuplicated = errors.NewPublic("event name is already defined")
li-jin-gou marked this conversation as resolved.
Show resolved Hide resolved
)

var (
Expand All @@ -107,13 +108,13 @@ func FinishInitialization() {
// DefineNewEvent allows user to add event definitions during program initialization.
func DefineNewEvent(name string, level Level) (Event, error) {
if atomic.LoadInt32(&inited) == 1 {
return nil, ErrNotAllowed
return nil, errNotAllowed
}
lock.Lock()
defer lock.Unlock()
evt, exist := userDefined[name]
if exist {
return evt, ErrDuplicated
return evt, errDuplicated
}
userDefined[name] = newEvent(EventIndex(maxEventNum), level)
maxEventNum++
Expand Down
4 changes: 2 additions & 2 deletions pkg/common/tracer/stats/event_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestDefineNewEvent(t *testing.T) {

event2, err2 := DefineNewEvent("myevent", LevelBase)
num2 := MaxEventNum()
assert.Assert(t, err2 == ErrDuplicated)
assert.Assert(t, err2 == errDuplicated)
assert.Assert(t, event2 == event1)
assert.Assert(t, num2 == num1)
assert.Assert(t, event2.Level() == LevelDetailed)
Expand All @@ -44,7 +44,7 @@ func TestDefineNewEvent(t *testing.T) {

event3, err3 := DefineNewEvent("another", LevelDetailed)
num3 := MaxEventNum()
assert.Assert(t, err3 == ErrNotAllowed)
assert.Assert(t, err3 == errNotAllowed)
assert.Assert(t, event3 == nil)
assert.Assert(t, num3 == num1)
}
4 changes: 2 additions & 2 deletions pkg/protocol/http1/proxy/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ import (
"context"
"crypto/tls"
"encoding/base64"
"errors"
"time"

"github.com/cloudwego/hertz/internal/bytesconv"
"github.com/cloudwego/hertz/internal/bytestr"
"github.com/cloudwego/hertz/pkg/common/errors"
"github.com/cloudwego/hertz/pkg/network"
"github.com/cloudwego/hertz/pkg/protocol"
"github.com/cloudwego/hertz/pkg/protocol/consts"
Expand Down Expand Up @@ -111,7 +111,7 @@ func SetupProxy(conn network.Conn, addr string, proxyURI *protocol.URI, tlsConfi
if connectResp.StatusCode() != consts.StatusOK {
conn.Close()

return nil, errors.New(consts.StatusMessage(connectResp.StatusCode()))
return nil, errors.NewPublic(consts.StatusMessage(connectResp.StatusCode()))
}
}

Expand Down