El lib/pq
el paquete puede devolver errores de tipo *pq.Error
, que es una estructura. Si es así, puede usar todos sus campos para inspeccionar los detalles del error.
Así es como se puede hacer:
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
tiene los siguientes campos:
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
}
El significado y los posibles valores de estos campos son específicos de Postres y la lista completa se puede encontrar aquí:Campos de mensaje de error y aviso