mirror of
https://gitee.com/johng/gf.git
synced 2024-12-01 19:57:40 +08:00
111 lines
3.0 KiB
Go
111 lines
3.0 KiB
Go
|
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
||
|
//
|
||
|
// This Source Code Form is subject to the terms of the MIT License.
|
||
|
// If a copy of the MIT was not distributed with this file,
|
||
|
// You can obtain one at https://github.com/gogf/gf.
|
||
|
|
||
|
package gerror
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"github.com/gogf/gf/v2/errors/gcode"
|
||
|
)
|
||
|
|
||
|
// New creates and returns an error which is formatted from given text.
|
||
|
func New(text string) error {
|
||
|
return &Error{
|
||
|
stack: callers(),
|
||
|
text: text,
|
||
|
code: gcode.CodeNil,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Newf returns an error that formats as the given format and args.
|
||
|
func Newf(format string, args ...interface{}) error {
|
||
|
return &Error{
|
||
|
stack: callers(),
|
||
|
text: fmt.Sprintf(format, args...),
|
||
|
code: gcode.CodeNil,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// NewSkip creates and returns an error which is formatted from given text.
|
||
|
// The parameter `skip` specifies the stack callers skipped amount.
|
||
|
func NewSkip(skip int, text string) error {
|
||
|
return &Error{
|
||
|
stack: callers(skip),
|
||
|
text: text,
|
||
|
code: gcode.CodeNil,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// NewSkipf returns an error that formats as the given format and args.
|
||
|
// The parameter `skip` specifies the stack callers skipped amount.
|
||
|
func NewSkipf(skip int, format string, args ...interface{}) error {
|
||
|
return &Error{
|
||
|
stack: callers(skip),
|
||
|
text: fmt.Sprintf(format, args...),
|
||
|
code: gcode.CodeNil,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Wrap wraps error with text. It returns nil if given err is nil.
|
||
|
// Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
|
||
|
func Wrap(err error, text string) error {
|
||
|
if err == nil {
|
||
|
return nil
|
||
|
}
|
||
|
return &Error{
|
||
|
error: err,
|
||
|
stack: callers(),
|
||
|
text: text,
|
||
|
code: Code(err),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Wrapf returns an error annotating err with a stack trace at the point Wrapf is called, and the format specifier.
|
||
|
// It returns nil if given `err` is nil.
|
||
|
// Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
|
||
|
func Wrapf(err error, format string, args ...interface{}) error {
|
||
|
if err == nil {
|
||
|
return nil
|
||
|
}
|
||
|
return &Error{
|
||
|
error: err,
|
||
|
stack: callers(),
|
||
|
text: fmt.Sprintf(format, args...),
|
||
|
code: Code(err),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WrapSkip wraps error with text. It returns nil if given err is nil.
|
||
|
// The parameter `skip` specifies the stack callers skipped amount.
|
||
|
// Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
|
||
|
func WrapSkip(skip int, err error, text string) error {
|
||
|
if err == nil {
|
||
|
return nil
|
||
|
}
|
||
|
return &Error{
|
||
|
error: err,
|
||
|
stack: callers(skip),
|
||
|
text: text,
|
||
|
code: Code(err),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WrapSkipf wraps error with text that is formatted with given format and args. It returns nil if given err is nil.
|
||
|
// The parameter `skip` specifies the stack callers skipped amount.
|
||
|
// Note that it does not lose the error code of wrapped error, as it inherits the error code from it.
|
||
|
func WrapSkipf(skip int, err error, format string, args ...interface{}) error {
|
||
|
if err == nil {
|
||
|
return nil
|
||
|
}
|
||
|
return &Error{
|
||
|
error: err,
|
||
|
stack: callers(skip),
|
||
|
text: fmt.Sprintf(format, args...),
|
||
|
code: Code(err),
|
||
|
}
|
||
|
}
|