Sobes.tech
Junior — Middle

Consegue mencionar erros típicos cometidos ao usar transações?

sobes.tech IA

Resposta da IA

Erros comuns ao trabalhar com transações em Go:

  1. Ignorar erros implicitamente — esquecer de verificar os erros após operações com transações (por exemplo, após tx.Commit() ou tx.Rollback()), o que pode levar a problemas não detectados.

  2. Falta de rollback em caso de erros — se ocorrer um erro durante a transação, não chamar tx.Rollback(), o que pode causar bloqueios ou inconsistências nos dados.

  3. Chamada dupla a Commit ou Rollback — chamar várias vezes esses métodos pode causar pânicos ou erros.

  4. Manter a transação aberta por muito tempo — manter a transação aberta por demasiado tempo bloqueia outras operações e reduz o desempenho.

  5. Usar transações sem contexto — não passar context.Context aos métodos, o que complica a cancelamento ou limites de tempo.

Exemplo de uso correto de uma transação:

ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
    // tratamento do erro
}

// Executar operações
if _, err := tx.ExecContext(ctx, "INSERT INTO ..."); err != nil {
    tx.Rollback()
    return err
}

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

É importante sempre tratar erros e finalizar a transação corretamente.