mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-16 13:22:09 +08:00
Wrap the context render panic.
Panic handling middleware can test for this error and decide to supress the error or not.
This commit is contained in:
parent
80cd679c43
commit
e7f7980ff3
@ -922,7 +922,10 @@ func (c *Context) Render(code int, r render.Render) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := r.Render(c.Writer); err != nil {
|
if err := r.Render(c.Writer); err != nil {
|
||||||
panic(err)
|
panic(Error{
|
||||||
|
Err: err,
|
||||||
|
Type: ErrorTypeRender,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -655,6 +655,16 @@ func TestContextRenderPanicIfErr(t *testing.T) {
|
|||||||
defer func() {
|
defer func() {
|
||||||
r := recover()
|
r := recover()
|
||||||
assert.Equal(t, "TestPanicRender", fmt.Sprint(r))
|
assert.Equal(t, "TestPanicRender", fmt.Sprint(r))
|
||||||
|
|
||||||
|
// confirm the recovered object is an error
|
||||||
|
err, ok := r.(error)
|
||||||
|
assert.True(t, ok)
|
||||||
|
|
||||||
|
// the error returned should be a gin render Error
|
||||||
|
e := Error{}
|
||||||
|
assert.True(t, errors.As(err, &e))
|
||||||
|
assert.ErrorContains(t, e.Unwrap(), "TestPanicRender")
|
||||||
|
assert.True(t, e.IsType(ErrorTypeRender))
|
||||||
}()
|
}()
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
c, _ := CreateTestContext(w)
|
c, _ := CreateTestContext(w)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user