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:
-
Ignorar erros implicitamente — esquecer de verificar os erros após operações com transações (por exemplo, após
tx.Commit()outx.Rollback()), o que pode levar a problemas não detectados. -
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. -
Chamada dupla a
CommitouRollback— chamar várias vezes esses métodos pode causar pânicos ou erros. -
Manter a transação aberta por muito tempo — manter a transação aberta por demasiado tempo bloqueia outras operações e reduz o desempenho.
-
Usar transações sem contexto — não passar
context.Contextaos 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.