今回はGormでのエラーハンドリングに関してです。
Gormではエラーの際にerrorオブジェクトが返りますが、レコードが見つからない場合のみRecordNotFoundというエラーにて判定することができます。
if err := db.Where("name = ?", "jinzhu").First(&user).Error; gorm.IsRecordNotFoundError(err) {
// レコードが見つかりません
}
エラーハンドリング
Goでは、エラー処理が重要です。 Finisher Methods の後にエラーチェックを行うことをおすすめします。 Error HandlingGORMでのエラーハンドリングは、メソッドチェーン可能なAPIのため、ふつうのGoコードとは異なります。 なんらかのエラーが発生した場合、GORMは *gorm.DBの Er...
gorm.IsRecordNotFoundError(err)
このように記述するとRecordNotFoundが判定できます。
なお、他のエラーに関しれは判定できない(エラーの文字解析をするしかない)ようです。
Goおすすめ書籍
プログラミング言語Goは、Go言語を詳細に学ぶ一冊としては現在出版されている本では一番だと思います。
コメント