我想问下StopRun怎么做到用了panic不会报错呢?

这里是源码


var (
    // ErrAbort custom error when user stop request handler manually.
    ErrAbort = errors.New("User stop run")
)

// StopRun makes panic of USERSTOPRUN error and go to recover function if defined.
func (c *Controller) StopRun() {
    panic(ErrAbort)
}

我看源码里面也没有recover,是怎么做到屏蔽错误的呢?

我在外面写一个recover是可以捕获到错误的,求解

已邀请:

astaxie - 创造、获取、分享、传播和应用Go

赞同来自: alex

因为你写的controller都是通过beego.Run()里面回去调度的,panic的话会在上层catch这个错误,这个也就是为什么ErrAbort能够识别

要回复问题请先登录注册