亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go嘗試處理錯誤而不是我

Go嘗試處理錯誤而不是我

Go
尚方寶劍之說 2022-09-26 19:32:24
我使用GORM運行以下代碼:result := db.Where("account_name = ?", config.AccountName).First(&accountRecord) // line 299    // if there is some error when working with DB    if result.Error != nil && !errors.Is(result.Error, gorm.ErrRecordNotFound) {        fmt.Println("error when processing accountResponse")        return 0, false, result.Error    }// in case that record exists    if result.Error != nil {        accountRecord = newAcountData        result = db.Create(&accountRecord)    } else {        result = db.Model(&accountRecord).Updates(newAcountData)    }我已經想在找不到記錄的情況下運行一些邏輯。但是 - 錯誤仍然顯示在我的控制臺中,說:The record was not found2021/08/30 18:30:16 /Users/kana/projects/server/data-processor/commands.go:289 record not found[4.966ms] [rows:0] SELECT * FROM "accounts" WHERE account_name = 'kana' AND "accounts"."deleted_at" IS NULL ORDER BY "accounts"."id" LIMIT 1為什么會這樣呢?之后整個程序運行良好 - 沒有崩潰,整體行為是它的設計方式。只是這個錯誤消息惹惱了我。
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

這是因為 GORM 正在處理一些日志輸出,并且是其中之一。如果需要禁用這些類型的日志活動,可以執行以下操作:record not found

如果您使用的是 GORM v1

https://pkg.go.dev/github.com/jinzhu/gorm#DB.LogMode

db.LogMode(false)

如果您使用的是 GORM v2,則可以將記錄器傳遞到 gorm 配置并控制輸出。

https://gorm.io/docs/logger.html#Log-Levels

db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{
  Logger: logger.Default.LogMode(logger.Silent),
})


查看完整回答
反對 回復 2022-09-26
  • 1 回答
  • 0 關注
  • 78 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號