resterror

package
v0.0.0-...-e2a80a6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2023 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FixNilError

func FixNilError(err error) error

FixNilError 如果err指向是一个空指针,返回nil。

func FormatNoRetryError

func FormatNoRetryError(format string, a ...interface{}) error

FormatNoRetryError 格式化一个NoRetryError的实现实例。

func FormatNotFoundError

func FormatNotFoundError(format string, a ...interface{}) error

FormatNotFoundError 格式化一个NotFoundError的实现实例。

func IsNoRetry

func IsNoRetry(err error) bool

IsNoRetry 判断是否是一个NoRetry错误。

func IsNotFound

func IsNotFound(err error) bool

IsNotFound 判断是否是一个NotFound错误。

func WrapNoRetryError

func WrapNoRetryError(err error) error

WrapNoRetryError 包装一个error,返回一个NoRetryError的实现实例。

func WrapNotFoundError

func WrapNotFoundError(err error) error

WrapNotFoundError 包装一个error,返回一个NotFoundError的实现实例。

func Wrapf

func Wrapf(err error, format string, a ...any) error

Wrapf 包装错误,添加消息。

Types

type NoRetryError

type NoRetryError interface {
	error
	NoRetry()
}

NoRetryError 不重试的错误接口。

type NotFoundError

type NotFoundError interface {
	error
	NotFound()
}

NotFoundError 没找到的错误接口。

type PanicError

type PanicError struct {
	// contains filtered or unexported fields
}

PanicError panic错误。

func AsPanic

func AsPanic(err error) (PanicError, bool)

AsPanic 将一个错误,转为Panic错误。如果不是Panic错误,返回Falase。

func NewPanicError

func NewPanicError(recovery interface{}) PanicError

NewPanicError 创建一个PanicError。

func Recover

func Recover(f func()) (panicErr *PanicError)

Recover 执行函数f。如果函数发生panic,返回一个PanicError错误;否则返回nil。

func (PanicError) Error

func (err PanicError) Error() string

String 实现error。返回字符串格式为:panic <recovery>。

func (PanicError) Format

func (err PanicError) Format(s fmt.State, verb rune)

Format 实现fmt.Formatter。

func (PanicError) PanicStack

func (err PanicError) PanicStack() string

PanicTrace Panic调用栈。

func (PanicError) StackTrace

func (err PanicError) StackTrace() string

StackTrace 调用栈。

type Status

type Status interface {
	HTTPStatusCode() int

	GRPCCode() codes.Code
}

Status 错误状态码。

var (
	// StatusOk 成功。
	StatusOk Status = builtInStatus{
		HttpStatusCode: http.StatusOK,
		GRpcCode:       codes.OK,
	}

	// StatusInvalidArgument 无效参数。
	StatusInvalidArgument Status = builtInStatus{
		HttpStatusCode: http.StatusBadRequest,
		GRpcCode:       codes.InvalidArgument,
	}

	// StatusNotFound 没找到。
	StatusNotFound Status = builtInStatus{
		HttpStatusCode: http.StatusNotFound,
		GRpcCode:       codes.NotFound,
	}

	// StatusAlreadyExists 已经存在,冲突。
	StatusAlreadyExists Status = builtInStatus{
		HttpStatusCode: http.StatusConflict,
		GRpcCode:       codes.AlreadyExists,
	}

	// StatusPermissionDenied 拒绝访问。
	StatusPermissionDenied Status = builtInStatus{
		HttpStatusCode: http.StatusForbidden,
		GRpcCode:       codes.PermissionDenied,
	}

	// StatusFailedPrecondition 条件不满足
	StatusFailedPrecondition Status = builtInStatus{
		HttpStatusCode: http.StatusPreconditionFailed,
		GRpcCode:       codes.FailedPrecondition,
	}

	// StatusUnimplemented 未实现。
	StatusUnimplemented Status = builtInStatus{
		HttpStatusCode: http.StatusNotImplemented,
		GRpcCode:       codes.Unimplemented,
	}

	// StatusInternal 内部错误。
	StatusInternal Status = builtInStatus{
		HttpStatusCode: http.StatusInternalServerError,
		GRpcCode:       codes.Internal,
	}

	// StatusUnavailable 服务当前不可用。
	StatusUnavailable Status = builtInStatus{
		HttpStatusCode: http.StatusServiceUnavailable,
		GRpcCode:       codes.Unavailable,
	}

	// StatusUnauthenticated 未认证。
	StatusUnauthenticated Status = builtInStatus{
		HttpStatusCode: http.StatusUnauthorized,
		GRpcCode:       codes.Unauthenticated,
	}
)

type StatusError

type StatusError struct {
	// contains filtered or unexported fields
}

StatusError 带了错误状态码的error实现。

func ErrorWithStatus

func ErrorWithStatus(err error, status Status) StatusError

ErrorWithStatus 包装状态码,返回一个新的error。

func (StatusError) GRPCStatus

func (statusError StatusError) GRPCStatus() *status.Status

GRPCStatus 实现grpc-go的接口。 google.golang.org/grpc/status.Code()可以取得StatusError的GRPCCode。

func (StatusError) HTTPStatusCode

func (statusError StatusError) HTTPStatusCode() int

HTTPStatusCode 实现github.com/wencan/fastrest/restserver/httpserver的错误接口HTTPStatusError。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL