This commit is contained in:
oneao committed 2025-08-14 17:28:32 +08:00
1 parent d1b1aafc57
commit 0f1604c709
58 files changed
+15476 -25

No files matched your search

@@ -1,7 +1,6 @@
package db
import (
"database/sql"
"fmt"
)
@@ -12,13 +11,10 @@ func (c *Client) QueryRows(query string, args ...any) ([]map[string]any, error)
rows, err := c.Conn.Query(query, args...)
if err != nil {
return nil, err
return nil, err // 不加 debug.Stack()
}
defer func(rows *sql.Rows) {
_ = rows.Close()
}(rows)
defer rows.Close()
// 获取列名
columns, err := rows.Columns()
if err != nil {
return nil, err
@@ -26,7 +22,6 @@ func (c *Client) QueryRows(query string, args ...any) ([]map[string]any, error)
results := make([]map[string]any, 0)
for rows.Next() {
// 为每列创建一个接口值的 slice
values := make([]any, len(columns))
valuePtrs := make([]any, len(columns))
for i := range columns {
@@ -0,0 +1,38 @@
package utils
import "runtime/debug"
// StackError 保存原始错误和堆栈
type StackError struct {
err error
stack string
}
// 实现 error 接口
func (s *StackError) Error() string {
if s.err == nil {
return ""
}
return s.err.Error()
}
// StackTrace 返回堆栈信息
func (s *StackError) StackTrace() string {
return s.stack
}
// WrapWithStack 给错误附加堆栈,如果已经是 StackError 则直接返回
func WrapWithStack(err error) *StackError {
if err == nil {
return nil
}
if se, ok := err.(*StackError); ok {
return se
}
return &StackError{
err: err,
stack: string(debug.Stack()),
}
}
@@ -17,7 +17,7 @@ type Result struct {
Code string `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
Error *ErrorInfo `json:"error,omitempty"`
Error ErrorInfo `json:"error,omitempty"`
}
const (
@@ -92,7 +92,7 @@ func (b *Builder) Data(data interface{}) *Builder {
}
// ErrorInfo 设置错误信息
func (b *Builder) ErrorInfo(err *ErrorInfo) *Builder {
func (b *Builder) ErrorInfo(err ErrorInfo) *Builder {
b.result.Error = err
return b
}