lib/pq
пакетът може да върне грешки от тип *pq.Error
, което е структура. Ако го направи, можете да използвате всички негови полета, за да проверите за подробности относно грешката.
Ето как може да се направи:
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
има следните полета:
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
}
Значението и възможните стойности на тези полета са специфични за Postres и пълният списък може да бъде намерен тук:Полета за съобщения за грешки и забележки