如何在Beego中创建自定义恢复?

时间:2016-06-22 00:04:16

标签: go beego

如何覆盖Beego的recoverPanic?我已设置标志recoverpanic = false并编写我自己的恢复但没有运气,它只是将恐慌消息打印到控制台而不是跳转到我的恢复功能。

func main() {
    defer recoverPanic()
    beego.Run()
}

func recoverPanic() {
    if err := recover(); err != nil {
        fmt.Println("Panic should go there")
    }
}

我想捕捉所有意外错误,例如nil pointer,写一些日志并发送电子邮件给我们的维护人员。

1 个答案:

答案 0 :(得分:0)

您应该在每个goroutine的开头添加recoverPanic。您在recover函数中添加了main,它不会缓存请求的panic

在Beego中试试这个:

func (c *MainController) Get() {
    defer recoverPanic()

    ... Your Code ...
}