遅延エラー変数を使用した Defer でのエラー処理
Go では、周囲の関数の後に関数が実行されるようにするために defer ステートメントが使用されます。が戻ってきました。これは、クリーンアップ タスクやリソース管理に役立ちます。ただし、defer ステートメントがエラーを返した場合はどうなりますか?
遅延エラーの処理
データベース接続を開こうとし、接続またはエラー。この関数は、終了する前に同期する必要があるロガーを使用します。ロガーの Sync() メソッドは、現在無視されているエラーを返します。
ベスト プラクティス
遅延エラーを処理するための推奨されるアプローチは、返されるエラーに名前を付けて初期化することです。変数は関数内の任意の場所にあります。エラー変数に名前を付けると、テストやデバッグ中にエラーを追跡しやすくなります。
たとえば、元のコードは次のように変更できます。
func OpenDbConnection(connectionString string, logSql bool) (*gorm.DB, error) { logger := zap.NewExample().Sugar() defer func() { if err := logger.Sync(); err != nil { return } }() // some logic here return db, err }
利点
このアプローチにはいくつかの利点があります。
結論
遅延エラーを処理する場合、返されるエラー変数に名前を付けて内部で初期化することがベスト プラクティスです。関数。これにより、適切なエラー処理が可能になり、デバッグが簡素化されます。
以上がGo の Defer ステートメントから返されたエラーを効果的に処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。