データベースに接続し、接続またはエラーを返す関数がある状況では、defer を使用して、エラー処理を処理します。ただし、ロガーの Sync メソッドによって返されたエラーを無視することはベスト プラクティスではありません。
エラーを抑制せずにリンター エラーを回避する 1 つの方法は、以下に示すように匿名関数を使用することです。
logger := zap.NewExample().Sugar() defer func() { _ = logger.Sync() }()
このアプローチはリンターの問題には対処しますが、呼び出し関数で返されたエラーを分析する手段は提供しません。
より堅牢な解決策は、関数内の任意の場所で err という名前のエラー変数を初期化することです。
func OpenDbConnection(connectionString string, logSql bool) (db *gorm.DB, err error) { logger := zap.NewExample().Sugar() defer func() { err = logger.Sync() }() // Some logic here return db, err }
このメソッドを使用すると、エラーをキャプチャして呼び出し元の関数に返すことができるため、適切なエラー分析が可能になります。
以上がDefer で戻り値を使用してエラーを処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。