我有一组这样的构造:
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()
。