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 中国語 Web サイトの他の関連記事を参照してください。