我有一组这样的构造:

func LoginUser(w http.ResponseWriter, req *http.Request) {
    // do some check here
    if err != nil {
        ReturnErrorResponse(w, errors.LoginError)
        return
    }

    // do some check here
    if err != nil {
        ReturnErrorResponse(w, errors.BannedUserError)
        return
    }

    //success
}

我想知道是否有可能摆脱这些return并将它们嵌入到ReturnErrorResponse函数中?

因此,如果发生错误,我将返回一个带有错误代码的JSONified响应,并进行赤裸裸的返回。

最佳答案

可以通过调用panic()例如在ReturnErrorResponse()函数中(返回错误后),但这既不习惯也不高效。

当然,使用panic()将需要在延迟函数中调用recover(),这可以在一个地方完成,例如在“主”处理程序中传递给 http.ListenAndServe()

您在做什么是正确的方法。请勿为此使用panic()

08-27 22:58