CodePráticov3.3.0
Angular

Tratamento global de erros no Angular

Centralize erros inesperados com ErrorHandler e trate respostas HTTP de forma consistente em aplicações Angular.

ErrorHandler global

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
  handleError(error: unknown): void {
    console.error('Erro não tratado:', error);

    // Envie para seu serviço de monitoramento,
    // quando existir.
  }
}

Registrar o handler

providers: [
  {
    provide: ErrorHandler,
    useClass: GlobalErrorHandler
  }
]

Erros HTTP

Erros HTTP esperados podem ser tratados em um interceptor ou no service, dependendo da regra. Por exemplo, um 401 pode iniciar o fluxo de autenticação; um 422 pode retornar mensagens de validação para o formulário.

return next.handle(req).pipe(
  catchError((error: HttpErrorResponse) => {
    if (error.status === 401) {
      // tratar sessão expirada
    }

    return throwError(() => error);
  })
);

Não esconda o erro do usuário

Boa prática: registre detalhes técnicos para diagnóstico, mas mostre ao usuário uma mensagem útil e adequada ao contexto.