Sobes.tech
Junior — Middle

Pouvez-vous citer des erreurs typiques commises lors de l'utilisation des transactions?

sobes.tech IA

Réponse de l'IA

Erreurs courantes lors de la gestion des transactions en Go:

  1. Ignorer implicitement les erreurs — oublier de vérifier les erreurs après les opérations sur la transaction (par exemple, après tx.Commit() ou tx.Rollback()), ce qui peut entraîner des problèmes non détectés.

  2. Absence de rollback en cas d'erreur — si une erreur survient pendant la transaction, ne pas appeler tx.Rollback(), ce qui peut conduire à des blocages ou à des incohérences de données.

  3. Appel double à Commit ou Rollback — appeler plusieurs fois ces méthodes peut provoquer un panic ou une erreur.

  4. Garder la transaction ouverte trop longtemps — une transaction ouverte trop longtemps bloque d'autres opérations et réduit la performance.

  5. Utilisation de la transaction sans contexte — ne pas passer context.Context aux méthodes, ce qui complique l'annulation ou la gestion des délais.

Exemple d'utilisation correcte d'une transaction:

ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
    // gestion de l'erreur
}

// Exécuter des opérations
if _, err := tx.ExecContext(ctx, "INSERT INTO ..."); err != nil {
    tx.Rollback()
    return err
}

if err := tx.Commit(); err != nil {
    return err
}

Il est toujours important de gérer les erreurs et de terminer la transaction proprement.