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すべてのゴルーチンの先頭に追加する必要があります。関数に を追加してrecoverも、リクエストmainはキャッシュされません。panic

ビーゴでこれを試してください:

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

    ... Your Code ...
}
于 2016-08-04T02:37:30.170 に答える