Comment déterminer une condition d'erreur spécifique à partir de db.Exec(...) dans Go ?
Dans une tentative de suppression d'un fichier Postgres base de données à l'aide du pilote lib/pq, les développeurs peuvent rencontrer un défi pour faire la différence entre les erreurs standard et les erreurs « la base de données n'existe pas ». Pour gérer efficacement ces scénarios, il est essentiel de comprendre le mécanisme de gestion des erreurs fourni par le pilote.
Le package lib/pq renvoie les erreurs sous forme de structures *pq.Error, offrant divers champs pour une inspection détaillée des erreurs. Pour accéder à ces champs, utilisez le code suivant :
<code class="go">if err, ok := err.(*pq.Error); ok { // Manipulate err.Code, err.Message, etc. }</code>
*pq.Error fournit les champs suivants :
<code class="go">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 }</code>
Chaque champ représente un aspect spécifique de l'erreur, tel que la gravité de l'erreur, code, message et objets de base de données associés. Pour le cas spécifique des erreurs « la base de données n'existe pas », consultez la documentation Postgres pour déterminer le code d'erreur correspondant et effectuez des comparaisons avec err.Code si nécessaire : https://www.postgresql.org/docs/current/errcodes-appendix .html
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!