30 lines
624 B
Go
30 lines
624 B
Go
package errorx
|
|
|
|
import (
|
|
"database/sql"
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// Wrap 包装 error,附加调用栈
|
|
func Wrap(err error) error {
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
// AddError 简化版,自动 wrap 并注册到 ctx
|
|
func AddError(c *app.RequestContext, err error) {
|
|
if err == nil {
|
|
return
|
|
}
|
|
_ = c.Error(Wrap(err)) // 自动 wrap 并注册
|
|
}
|
|
|
|
// IsNotFound 判断 err 是否因为数据库中没找到数据
|
|
func IsNotFound(err error) bool {
|
|
return errors.Is(err, sql.ErrNoRows) || errors.Is(err, pgx.ErrNoRows)
|
|
}
|