Goではエラーハンドリングが重要です。
You are encouraged to do error check after any Immediate Methods
エラーハンドリング
GORMにおけるエラーハンドリングは、チェーン可能なAPIのために、慣用的なGoのコードとは少し異なります。ですが、実装は簡単です。
何らかのエラーが起きた場合、GORMはそれを*gorm.DBのErrorフィールドにセットするので、このようにチェックを行うことができます:
if err := db.Where("name = ?", "jinzhu").First(&user).Error; err != nil { |
もしくは
if result := db.Where("name = ?", "jinzhu").First(&user); result.Error != nil { |
エラー
データを処理するときに、複数のエラーが発生するのはよくあることです。GORMはエラーをスライスとしてreturnするAPIを提供しています。
// 1つ以上のエラーが起きた場合、`GetErrors`は`[]error`を返します |
RecordNotFoundエラー
GORMはRecordNotFoundエラーを扱うためのショートカットを提供しています。複数のエラーが生じた場合は、その中にRecordNotFoundエラーが含まれているかチェックします。
// RecordNotFoundエラーを返すかチェックします |