lib/pq
pakiet może zwracać błędy typu *pq.Error
, który jest strukturą. Jeśli tak, możesz użyć wszystkich jego pól, aby sprawdzić szczegóły błędu.
Oto jak można to zrobić:
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
ma następujące pola:
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
}
Znaczenie i możliwe wartości tych pól są specyficzne dla Postres, a pełną listę można znaleźć tutaj:Pola komunikatów o błędach i powiadomieniach