Merge fd6ffcc01e0b834a8827a21a010383a793a6e6ef into 077a2f39c85700ba0823f85ed29cec0c8f2cbdfc

This commit is contained in:
fthandsome 2025-08-20 02:15:45 +08:00 committed by GitHub
commit 850448d24a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -244,6 +244,11 @@ func (c *Context) AbortWithError(code int, err error) *Error {
/********* ERROR MANAGEMENT *********/ /********* ERROR MANAGEMENT *********/
/************************************/ /************************************/
// Avoid panic case
var emptyError = &Error{
Err: fmt.Errorf("err is nil"),
Type: ErrorTypePrivate,
}
// Error attaches an error to the current context. The error is pushed to a list of errors. // Error attaches an error to the current context. The error is pushed to a list of errors.
// It's a good idea to call Error for each error that occurred during the resolution of a request. // It's a good idea to call Error for each error that occurred during the resolution of a request.
// A middleware can be used to collect all the errors and push them to a database together, // A middleware can be used to collect all the errors and push them to a database together,
@ -251,7 +256,9 @@ func (c *Context) AbortWithError(code int, err error) *Error {
// Error will panic if err is nil. // Error will panic if err is nil.
func (c *Context) Error(err error) *Error { func (c *Context) Error(err error) *Error {
if err == nil { if err == nil {
panic("err is nil") // Avoid panic case, and do not push it into c.Errors
return emptyError
//panic("err is nil")
} }
var parsedError *Error var parsedError *Error