gpt4 book ai didi

go - 在 Golang 中,函数是否有可能在出错时进行裸返回?

转载 作者:IT王子 更新时间:2023-10-29 02:12:48 26 4
gpt4 key购买 nike

我有一组这样的结构:

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 函数中?

因此,如果发生错误,我将返回一个包含错误代码的 JSON 化响应并进行裸返回。

最佳答案

可以通过调用 panic() 例如在您的 ReturnErrorResponse() 函数中(在发送回错误之后),但它既不惯用也不高效。

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

你的做法是正确的。不要为此使用 panic()

关于go - 在 Golang 中,函数是否有可能在出错时进行裸返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40742371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com