mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-10-07 09:41:07 +08:00
修订代码,注释,示例
This commit is contained in:
@@ -12,7 +12,7 @@ type NumErr struct {
|
||||
Prefix string
|
||||
}
|
||||
|
||||
func (ne *NumErr) Error() string {
|
||||
func (ne NumErr) Error() string {
|
||||
|
||||
return ne.Prefix + strconv.Itoa(ne.N)
|
||||
}
|
||||
@@ -23,57 +23,51 @@ type ErrFirstBuffer struct {
|
||||
First *bytes.Buffer
|
||||
}
|
||||
|
||||
func (ef *ErrFirstBuffer) Unwarp() error {
|
||||
func (ef ErrFirstBuffer) Unwarp() error {
|
||||
|
||||
return ef.Err
|
||||
}
|
||||
|
||||
func (ef *ErrFirstBuffer) Error() string {
|
||||
func (ef ErrFirstBuffer) Error() string {
|
||||
|
||||
return ef.Err.Error()
|
||||
}
|
||||
|
||||
func NewErr(desc string, e error) *ErrInErr {
|
||||
return &ErrInErr{
|
||||
// 返回结构体,而不是指针, 这样可以避免内存逃逸到堆
|
||||
func NewErr(desc string, e error) ErrInErr {
|
||||
return ErrInErr{
|
||||
ErrDesc: desc,
|
||||
ErrDetail: e,
|
||||
}
|
||||
}
|
||||
|
||||
func NewDataErr(desc string, e error, data interface{}) *ErrInErr {
|
||||
return &ErrInErr{
|
||||
// 返回结构体,而不是指针, 这样可以避免内存逃逸到堆
|
||||
func NewDataErr(desc string, e error, data interface{}) ErrInErr {
|
||||
return ErrInErr{
|
||||
ErrDesc: desc,
|
||||
ErrDetail: e,
|
||||
Data: data,
|
||||
}
|
||||
}
|
||||
|
||||
// ErrInErr 很适合一个err包含另一个err,并且提供附带数据的情况
|
||||
// ErrInErr 很适合一个err包含另一个err,并且提供附带数据的情况.
|
||||
type ErrInErr struct {
|
||||
ErrDesc string
|
||||
ErrDetail error
|
||||
Data any
|
||||
|
||||
cachedStr string
|
||||
}
|
||||
|
||||
func (e *ErrInErr) Error() string {
|
||||
func (e ErrInErr) Error() string {
|
||||
return e.String()
|
||||
}
|
||||
|
||||
func (e *ErrInErr) Unwarp() error {
|
||||
func (e ErrInErr) Unwarp() error {
|
||||
|
||||
return e.ErrDetail
|
||||
}
|
||||
|
||||
func (e *ErrInErr) String() string {
|
||||
if e.cachedStr == "" {
|
||||
e.cachedStr = e.string()
|
||||
}
|
||||
return e.cachedStr
|
||||
}
|
||||
func (e ErrInErr) String() string {
|
||||
|
||||
func (e *ErrInErr) string() string {
|
||||
if e.Data != nil {
|
||||
|
||||
if e.ErrDetail != nil {
|
||||
|
Reference in New Issue
Block a user