Maison >développement back-end >Golang >Comment identifier une erreur « La base de données n'existe pas » à l'aide de « db.Exec (...) » dans Go ?

Comment identifier une erreur « La base de données n'existe pas » à l'aide de « db.Exec (...) » dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 05:47:30645parcourir

How to Identify a

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn