Merge pull request #910 from ammario/develop

panic if err is nil on c.Error
This commit is contained in:
Javier Provecho Fernandez 2017-07-05 15:26:15 +02:00 committed by GitHub
commit e0518111f8
2 changed files with 11 additions and 0 deletions

View File

@ -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. // 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 // 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. // 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 { func (c *Context) Error(err error) *Error {
if err == nil {
panic("err is nil")
}
var parsedError *Error var parsedError *Error
switch err.(type) { switch err.(type) {
case *Error: case *Error:

View File

@ -1014,6 +1014,13 @@ func TestContextError(t *testing.T) {
assert.Equal(t, c.Errors[1].Type, ErrorTypePublic) assert.Equal(t, c.Errors[1].Type, ErrorTypePublic)
assert.Equal(t, c.Errors.Last(), c.Errors[1]) 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) { func TestContextTypedError(t *testing.T) {