相关疑难解决方法(0)

循环中的"延迟" - 什么会更好?

我需要在循环中对数据库进行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

20
推荐指数
3
解决办法
1万
查看次数

如何在一个恐慌的Go函数中返回一个值?

我的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)

exception-handling recover go

9
推荐指数
1
解决办法
2723
查看次数

标签 统计

go ×2

exception-handling ×1

recover ×1