Golang / Mongo:处理“无法访问的服务器”恐慌
问题:
何时尝试使用 Go 中的 MGO 连接到 Mongo,如果服务器无法访问,则会引发恐慌。如何恢复这种恐慌以允许程序继续执行?
答案:
为了处理 MGO 在没有可用服务器时引发的恐慌,可以使用以下代码:
import ( "labix.org/v2/mgo" ) func connectToMongo() bool { // Define a flag to indicate success ret := false defer func() { if r := recover(); r != nil { fmt.Println("Detected panic") } }() maxWait := time.Duration(5 * time.Second) session, sessionErr := mgo.DialWithTimeout("localhost", maxWait) if sessionErr == nil { session.SetMode(mgo.Monotonic, true) coll := session.DB("MyDB").C("MyCollection") if coll != nil { fmt.Println("Got a collection object") ret = true } } else { // never gets here fmt.Println("Unable to connect to local mongo instance!") } return ret }
在此修改版本中:
通过合并这些更改,程序可以处理由于 MGO 无法连接到 Mongo 和继续执行而不退出。
以上是在 Go 中使用 MGO 连接到 MongoDB 时如何从“无法访问服务器”的恐慌中恢复?的详细内容。更多信息请关注PHP中文网其他相关文章!