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中文網其他相關文章!