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) 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) 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 ¶
NewInitError 创建初始化错误 参数:
- service: 服务名称
- operation: 操作名称
- err: 底层错误
返回:
- *InitError: 初始化错误实例
func NewInitErrorWithConfig ¶
NewInitErrorWithConfig 创建带配置信息的初始化错误 参数:
- service: 服务名称
- operation: 操作名称
- config: 配置信息(如别名等)
- err: 底层错误
返回:
- *InitError: 初始化错误实例
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 ¶
NewRpcError 创建 RPC 调用异常。 参数 msg 为错误描述信息,将记录到日志并返回给调用方。