我需要在循环中对数据库进行SQL查询:
for rows.Next() {
fields, err := db.Query(.....)
if err != nil {
// ...
}
defer fields.Close()
// do something with `fields`
}
Run Code Online (Sandbox Code Playgroud)
什么会更好:保持原样或defer
循环后移动:
for rows.Next() {
fields, err := db.Query(.....)
if err != nil {
// ...
}
// do something with `fields`
}
defer fields.Close()
Run Code Online (Sandbox Code Playgroud)
或者是其他东西 ?
我的Go函数应该返回一个值,但在调用库函数时可能会出现混乱.我可以用来recover()
在延期调用中捕获它,但是在这种情况下如何返回值?
func MyFunc() string{
defer func() {
if err := recover(); err != nil {
// What do I do to make MyFunc() return a value in case of panic?
}
}()
SomeFuncThatMayPanic()
return "Normal Return Value"
// How can I return "ERROR" in case of panic?
}
Run Code Online (Sandbox Code Playgroud)