2016-06-22 3 views
0

BeegoのrecoverPanicをオーバーライドする方法は?私は、フラグrecoverpanic = falseを設定し、私自身の回復を書くが、運がないだけで、代わりにコンソールにパニックメッセージを印刷する代わりに私の回復機能にジャンプします。Beegoでカスタムリカバリを作成するには?

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

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

私はすべてのunexpectエラーをキャッチしたい、例えばnil pointer、いくつかのログを書いて、私たちのメンテナにメールを送ります。

答えて

0

すべてのgoroutineの先頭にrecoverPanicを追加する必要があります。 recovermain関数に追加すると、要求のpanicがキャッシュされません。

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

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

    ... Your Code ... 
} 
+0

あなたは試みることがありますか?それは動作しません。 – windyzboy

+0

あなたのコードを見せてください。 @windyzboy – Bryce

関連する問題