O
lib/pq
o pacote pode retornar erros do tipo *pq.Error
, que é uma estrutura. Se isso acontecer, você pode usar todos os seus campos para inspecionar os detalhes do erro. É assim que pode ser feito:
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
tem os seguintes 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
}
O significado e os valores possíveis desses campos são específicos do Postres e a lista completa pode ser encontrada aqui:Campos de mensagem de erro e aviso