mgoは QueryError または ErrNotFound とは異なるエラーを返すことができますか? データベース接続エラーはどうなりますか?
ErrNotFound とは異なるエラーでパニックになり、ステータス 500 のかなりの応答のようなもので http ハンドラー スタックの一番上に回復するのは良い習慣ですか?
mgo によって返されるエラーのセットは、エラー (DNS 解決、接続の確立、タイムアウトなど) を返す可能性のある下で多くの操作を実行するため、制限されていません。したがって、mgo でエラーを処理する適切な方法は、ほとんどの場所と同じです。つまり、知っていてカスタム ロジックがあるエラーを処理し、そうでないエラーを回避します。適切な救済には、ローカルの副作用 (ローカルで作成されたファイルを閉じる/削除するなど) を元に戻し、呼び出し元にエラーを返すことが含まれます。おそらく、カスタム コンテキスト情報で装飾またはラップされます。
そのようなエラーでパニックになることはありません。パニックは通常、開発者が API で何か問題を起こした場合や、環境が深刻な損傷を受けている場合など、異常な状況が発生した場合に発生し、最善の方法は完全に停止することです。データベース (またはネットワーク関連のもの) との接続は、ときどき落ちることが予想され、単に区別できないクラッシュをログに記録するのではなく、適切に処理する必要があります。
詳細があり、さらに話をしたい場合は、メーリング リストに来てください。