從資料庫操作中擷取錯誤代碼
使用Postgres 驅動程式(lib/pq)執行查詢時,有時需要區分一般錯誤和特定條件(例如“資料庫不存在”錯誤)。為了實現這一點,Postgres 驅動程式提供了一種結構化方法來檢查錯誤詳細資訊。
存取錯誤代碼
db.Exec(...) 傳回的錯誤是型別 *pq.Error,一個包含描述錯誤的各種欄位的結構。要存取這些字段,請使用以下語法:
if err, ok := err.(*pq.Error); ok { // Inspect error fields, such as: fmt.Println("Error code:", err.Code.Name()) }
識別「資料庫不存在」錯誤
不幸的是,「資料庫不存在」沒有專用的錯誤代碼不存在」錯誤。相反,它屬於更常見的“28003:資料庫不存在”錯誤。要檢查此情況,請使用以下代碼:
if err, ok := err.(*pq.Error); ok { if err.Code.Name() == "28003" { // Database does not exist } }
附加字段
除了錯誤代碼之外,*pq.Error 結構還提供其他有用的信息字段,包括:
以上是如何使用 Postgres 驅動程式區分一般錯誤和特定條件(例如「資料庫不存在」錯誤)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!