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.
Assuntos:ErrorHandlererrosHTTP