You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 18, 2025. It is now read-only.
// QueryRowsMap is a convenience function allowing querying a result set while poviding a callback
// function activated per read row.
func QueryRowsMap(db *sql.DB, query string, on_row func(RowMap) error, args ...interface{}) error {
var err error
defer func() {
if derr := recover(); derr != nil {
err = errors.New(fmt.Sprintf("QueryRowsMap unexpected error: %+v", derr))
}
}()
... ...
return err
}
The err modified in defer will not return to the caller.
For example:
package main
import (
"fmt"
)
func main(){
i := test()
fmt.Println("main i:", i)
}
func test() int {
var a int
defer func () {
a = 2
}()
a = 1
return a
}
output: main i: 1
The correct usage like this:
package main
import (
"fmt"
)
func main(){
i := test()
fmt.Println("main i:", i)
}
func test() (a int) {
defer func () {
a = 2
}()
a = 1
return a
}