diff --git a/context.go b/context.go index 1c76c0f6..4d655c6f 100644 --- a/context.go +++ b/context.go @@ -235,6 +235,11 @@ func (c *Context) AbortWithError(code int, err error) *Error { /********* 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. // 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, @@ -242,7 +247,9 @@ func (c *Context) AbortWithError(code int, err error) *Error { // Error will panic if err is nil. func (c *Context) Error(err error) *Error { 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