2016-06-22 4 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") 
    } 
} 

나는, 예컨대 nil pointer 모든 unexpect 오류를 잡아 일부 로그를 작성하고 우리의 관리자들에게 이메일을 보내려고합니다.

답변

0

모든 goroutine 시작 부분에 recoverPanic을 추가해야합니다. recovermain 함수에 추가하면 요청의 panic이 캐시되지 않습니다.

Beego이 시도 :

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

    ... Your Code ... 
} 
+0

당신은 시도 했습니까? 작동하지 않습니다. – windyzboy

+0

코드를 보여주세요. @windyzboy – Bryce

관련 문제