Tema: error-handling
-
Tratamento de erros em PowerShell para scripts de administração: erros terminantes, $ErrorActionPreference e $LASTEXITCODE
O PowerShell tem duas classes de erro com comportamentos distintos num script: erros terminantes, que o try/catch consegue interromper, e erros não terminantes, que só $ErrorActionPreference ou -ErrorAction podem transformar em interrupção. Uma terceira classe, as falhas de executáveis nativos, não segue nenhum desses caminhos, a menos que $PSNativeCommandUseErrorActionPreference esteja definido (PowerShell 7.4+, experimental na 7.3).
-
Como verificar se um wrapper de tarefa escondeu a falha do comando interno
Permite determinar se uma tarefa reportada como bem-sucedida realmente propagou o resultado do compilador, do executor de testes ou do comando de migração de que o sucesso depende.
-
Tratamento de erros em Go: encapsulamento com %w, errors.Is e errors.As
Em Go, as funções retornam erros como valores comuns; adicione contexto com fmt.Errorf e o verbo %w para manter o erro original acessível, e depois inspecione a cadeia com errors.Is para valores sentinela e errors.As (ou o genérico errors.AsType) para tipos, em vez de comparar strings ou usar ==.
-
Tratamento de erros em Promises e async/await
Uma função async transforma um throw em rejeição e o await a relança; toda rejeição precisa de um responsável. Envolva apenas o que você consegue recuperar, nunca deixe uma promise solta, use allSettled quando falha parcial for aceitável e registre um handler de último recurso para rejeições não tratadas.
-
Como testar caminhos de erro e timeouts em chamadas de saída
Liste as classes de falha de cada dependência (recusa, reset, timeout de conexão, timeout de leitura, 5xx, 429, corpo malformado ou lento), injete cada uma com um test double no nível de unidade e com um proxy de injeção de falhas no nível de integração, e verifique o comportamento prometido: tentativas, backoff, erros tipados, limpeza de recursos e ausência de escritas parciais.
-
Result, Option e o operador ?: tratamento de erros em Rust
Rust não tem exceções nem null: operações que podem falhar retornam Result<T, E>, valores ausentes são Option<T>, e ambos são enums que o compilador obriga a tratar com match. O operador ? retorna Err ou None antecipadamente e converte tipos de erro via From; ignorar um Result gera um aviso do compilador, pois o tipo é marcado com #[must_use].
Legível por máquina: JSON