exception

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: May 28, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package exception 定义框架的异常体系。

所有业务异常均通过 panic 抛出,由框架的 recover 中间件统一捕获并转换为 HTTP 响应。 自定义异常需实现 Handler 接口;框架内置了 CommonError(通用异常)、AuthFailed(认证失败)、 RpcError(RPC 调用异常)和 InvalidParam(参数校验异常)等类型。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthFailed

type AuthFailed struct {
}

AuthFailed 认证失败异常。 当请求的身份认证不通过时(如 Token 无效、过期等),通过 panic 抛出此异常, 框架将返回统一的认证失败响应码和消息。

使用方式:panic(exception.AuthFailed{})

func (AuthFailed) Error

func (_ AuthFailed) Error() string

Error 实现 error 接口,返回认证失败的默认消息

func (AuthFailed) OnException

func (authFailed AuthFailed) OnException(*gin.Context) (msg string, code int)

OnException 实现 Handler 接口,返回认证失败消息和状态码

type CommonError

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

CommonError 通用业务异常,msg 会原样返回给前端。 适用于业务逻辑中需要向用户展示具体错误信息的场景。

使用方式:panic(exception.NewCommonError("xxx 不能为空"))

func NewCommonError

func NewCommonError(msg string) CommonError

NewCommonError 创建通用业务异常。 参数 msg 将直接返回给前端用户,请确保不包含敏感信息。

func (CommonError) Error

func (e CommonError) Error() string

Error 实现 error 接口,返回异常消息

func (CommonError) OnException

func (e CommonError) OnException(*gin.Context) (msg string, code int)

OnException 实现 Handler 接口,返回异常消息和通用异常状态码

type Handler

type Handler interface {
	// OnException 处理异常并返回响应信息。
	// 返回值 msg 将作为 HTTP 响应的错误消息,code 将作为业务状态码。
	OnException(ctx *gin.Context) (msg string, code int)
}

Handler 异常处理器接口。 所有通过 panic 抛出的异常如果实现了此接口,框架将调用 OnException 获取响应消息和状态码; 未实现此接口的 panic 值将被视为未知异常(500)。

type InitError

type InitError struct {
	Service   string // 服务名称,如 "db", "redis", "es" 等
	Operation string // 操作名称,如 "初始化连接", "创建客户端" 等
	Config    string // 配置信息,如数据库别名、Redis别名等
	Err       error  // 底层错误
}

InitError 初始化错误类型 用于初始化阶段的错误,提供更详细的错误上下文信息 初始化阶段的错误通常会导致服务无法启动,因此使用 panic 是合理的 但通过统一的错误类型,可以提供更好的错误追踪和诊断信息

func NewInitError

func NewInitError(service, operation string, err error) *InitError

NewInitError 创建初始化错误 参数:

  • service: 服务名称
  • operation: 操作名称
  • err: 底层错误

返回:

  • *InitError: 初始化错误实例

func NewInitErrorWithConfig

func NewInitErrorWithConfig(service, operation, config string, err error) *InitError

NewInitErrorWithConfig 创建带配置信息的初始化错误 参数:

  • service: 服务名称
  • operation: 操作名称
  • config: 配置信息(如别名等)
  • err: 底层错误

返回:

  • *InitError: 初始化错误实例

func (*InitError) Error

func (e *InitError) Error() string

Error 实现 error 接口

func (*InitError) Unwrap

func (e *InitError) Unwrap() error

Unwrap 返回底层错误,支持 errors.Unwrap

type InvalidParam

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

InvalidParam 参数校验异常。 当请求参数不符合校验规则时抛出此异常,框架将返回参数校验失败的响应码和错误详情。 支持自定义错误消息,也可通过 NewInvalidParamFromValidator 自动转换 validator 校验错误。

使用方式:panic(exception.NewInvalidParam("用户名长度必须在 3-20 之间"))

func NewInvalidParam

func NewInvalidParam(msg string) InvalidParam

NewInvalidParam 创建参数校验异常。 参数 msg 为具体的校验失败描述信息,将作为 HTTP 响应返回给调用方。

func NewInvalidParamFromValidator

func NewInvalidParamFromValidator(validationErrors validator.ValidationErrors) InvalidParam

NewInvalidParamFromValidator 从validator校验错误创建InvalidParam异常 将validator.ValidationErrors转换为InvalidParam异常

参数 validationErrors: validator校验错误集合 返回值: InvalidParam异常实例

func (InvalidParam) Error

func (e InvalidParam) Error() string

Error 实现 error 接口,返回参数校验的错误消息。 如果未设置自定义消息,则返回框架默认的参数校验失败消息。

func (InvalidParam) OnException

func (e InvalidParam) OnException(*gin.Context) (msg string, code int)

OnException 实现 Handler 接口,返回参数校验失败消息和对应的业务状态码

type RpcError

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

RpcError RPC 调用异常。 当远程服务调用失败时抛出此异常,框架会记录错误日志和调用栈,并返回 RPC 异常状态码。

使用方式:panic(exception.NewRpcError("用户服务调用超时"))

func NewRpcError

func NewRpcError(msg string) RpcError

NewRpcError 创建 RPC 调用异常。 参数 msg 为错误描述信息,将记录到日志并返回给调用方。

func (RpcError) Error

func (e RpcError) Error() string

Error 实现 error 接口,返回 RPC 异常消息

func (RpcError) OnException

func (e RpcError) OnException(*gin.Context) (msg string, code int)

OnException 实现 Handler 接口,记录错误日志和调用栈,返回 RPC 异常状态码

Jump to

Keyboard shortcuts

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