diff --git a/context.go b/context.go index 5c4d27d..5196bb1 100644 --- a/context.go +++ b/context.go @@ -149,7 +149,11 @@ func (c *Context) AbortWithError(code int, err error) *Error { // 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, print a log, or append it in the HTTP response. +// Error will panic if err is nil. func (c *Context) Error(err error) *Error { + if err == nil { + panic("err is nil") + } var parsedError *Error switch err.(type) { case *Error: diff --git a/context_test.go b/context_test.go index 9a294c5..fe31f09 100644 --- a/context_test.go +++ b/context_test.go @@ -1014,6 +1014,13 @@ func TestContextError(t *testing.T) { assert.Equal(t, c.Errors[1].Type, ErrorTypePublic) assert.Equal(t, c.Errors.Last(), c.Errors[1]) + + defer func() { + if recover() == nil { + t.Error("didn't panic") + } + }() + c.Error(nil) } func TestContextTypedError(t *testing.T) {