Skip to content
Latchkey

O Que É Tratamento de Erros? Lidando com Falhas Graciosamente

Tratamento de erros é como um programa antecipa, detecta e responde a falhas para poder se recuperar ou falhar graciosamente em vez de travar de forma imprevisível.

As coisas dão errado: arquivos estão ausentes, redes caem, entradas são malformadas. Tratamento de erros é a disciplina de esperar essas falhas e decidir o que fazer a respeito, repetir, recorrer a um fallback, reportar ou sair de forma limpa, em vez de deixá-las travar o programa ou, pior, corromper dados silenciosamente. Bom tratamento de erros é o que separa código frágil de software robusto.

Formas de tratar erros

  • Exceções com try/catch para separar a lógica de erro do caminho feliz.
  • Valores de erro de retorno que os chamadores devem verificar explicitamente.
  • Tipos Result ou Option que forçam o tratamento em tempo de compilação.
  • Retries com backoff para falhas transitórias e recuperáveis.

Falhe em alto e bom som, não em silêncio

O pior tratamento de erros é engolir um erro e continuar como se nada tivesse acontecido, o que esconde bugs e corrompe o estado. Bom tratamento ou se recupera de forma significativa ou expõe a falha claramente, nunca a ignora quietamente.

Erros transitórios vs permanentes

Algumas falhas são transitórias (um blip momentâneo de rede) e valem um retry; outras são permanentes (entrada inválida) e repetir só desperdiça tempo. Distinguir as duas é central: repita as recuperáveis, falhe rápido no resto.

Degradação graciosa

Sistemas robustos degradam graciosamente: se um serviço não crítico falha, o app continua com funcionalidade reduzida em vez de colapsar inteiramente. O tratamento de erros decide quais falhas são fatais e quais podem ser toleradas.

Um exemplo rápido

Envolver uma chamada de rede em retry-with-backoff lida com um blip transitório automaticamente, enquanto um erro claro é lançado se a chamada continuar falhando após várias tentativas.

Tratamento de erros em CI

O CI falha por duas razões: bugs reais (determinísticos, corrija-os) e soluços transitórios de infraestrutura (uma rede ou registry instável, repita-os). A Latchkey aplica exatamente essa lógica, repetindo automaticamente falhas transitórias como blips de rede ou OOM kills enquanto deixa erros genuínos falharem para que sejam corrigidos.

Principais conclusões

  • Tratamento de erros antecipa e responde a falhas para que programas degradem graciosamente.
  • Nunca engula erros silenciosamente: recupere-se de forma significativa ou exponha-os claramente.
  • Distinguir falhas transitórias de permanentes decide o que repetir versus corrigir.

Guias relacionados