代码拉取完成,页面将自动刷新
package exception
import (
"gitee.com/zhucheer/orange/app"
"gitee.com/zhucheer/orange/logger"
"runtime/debug"
)
type PanicReader struct {
}
// NewPanicReader 捕获panic
func NewPanicReader() *PanicReader {
return &PanicReader{}
}
// Func implements Middleware interface.
func (w PanicReader) Func() app.MiddlewareFunc {
return func(next app.HandlerFunc) app.HandlerFunc {
return func(c *app.Context) error {
defer func() {
if pr := recover(); pr != nil {
logger.Criticalw("APP-PANIC", "panic", pr)
c.SetPanic(pr)
c.SetResponseStatus(500)
c.ToString(errorHtml())
debug.PrintStack()
return
}
}()
return next(c)
}
}
}
func errorHtml() string {
errorHtml := `
<html>
<head><title>500 Internal server error</title></head>
<body>
<center><h1>500 Internal server error</h1></center>
<hr><center>orange/v0.2</center>
</body>
</html>`
return errorHtml
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。