0

如何覆盖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,写一些日志并向我们的维护人员发送电子邮件。

4

1 回答 1

0

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

在 Beego 试试这个:

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

    ... Your Code ...
}
于 2016-08-04T02:37:30.170 回答