Golang / Mongo : gestion de la panique « Aucun serveur accessible »
Problème :
Quand en essayant de se connecter à Mongo avec MGO dans Go, une panique éclate si le serveur est inaccessible. Comment récupérer cette panique pour permettre au programme de continuer son exécution ?
Réponse :
Pour gérer la panique déclenchée par MGO lorsqu'aucun serveur accessible n'est disponible, le le code suivant peut être utilisé :
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 }
Dans cette version modifiée :
En incorporant ces modifications, le programme peut gérer la panique provoquée par l'incapacité de MGO à se connecter à Mongo et continuer l'exécution sans quitter.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!