20 Star 167 Fork 28

qiqi/orange

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
exception.go 912 Bytes
一键复制 编辑 原始数据 按行查看 历史
qiqi 提交于 2020-06-08 09:57 . 500错误页面模板更新
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
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/zhucheer/orange.git
git@gitee.com:zhucheer/orange.git
zhucheer
orange
orange
v0.2.26

搜索帮助