lib/pq
paketet kan returnera fel av typen *pq.Error
, som är en struktur. Om det gör det kan du använda alla dess fält för att kontrollera detaljer om felet.
Så här kan det göras:
if err, ok := err.(*pq.Error); ok {
// Here err is of type *pq.Error, you may inspect all its fields, e.g.:
fmt.Println("pq error:", err.Code.Name())
}
pq.Error
har följande fält:
type Error struct {
Severity string
Code ErrorCode
Message string
Detail string
Hint string
Position string
InternalPosition string
InternalQuery string
Where string
Schema string
Table string
Column string
DataTypeName string
Constraint string
File string
Line string
Routine string
}
Innebörden och möjliga värden för dessa fält är Postres-specifika och hela listan kan hittas här:Fält för fel och meddelandemeddelanden