Impara la gestione degli errori in angolare con RxJS, catchError, HttpInterceptor

Blog

Impara la gestione degli errori in angolare con RxJS, catchError, HttpInterceptor

Impara la gestione degli errori in Angular 8/9, adotteremo l'approccio migliore con gli operatori catchError / catchError RxJS e HttpInterceptor per gestire gli errori lato client con grazia.



Una corretta gestione degli errori rende un'applicazione molto utile per gli utenti dal punto di vista dell'esperienza utente. I gestori degli errori segnalano correttamente a un utente cosa causa il problema viceversa. Inoltre, informa gli sviluppatori nella fase di sviluppo del motivo dell'errore, che li aiuta a risolverlo prima che venga pubblicato.

dove posso comprare il sakè?

In questi giorni le nuove tecnologie stanno crescendo più velocemente che mai. Questa competizione mira a rendere un software migliore per gli utenti, che si tratti di un utente finale, del proprietario del prodotto o di uno sviluppatore che lo sta costruendo da zero. A causa di ciò, le esperienze degli utenti sono diventate la tendenza.



Esistono due tipi di errori che possono verificarsi in un'applicazione, errori interni ed errori esterni.

Errori esterni: Questi errori si verificano spesso dal lato server e di solito iniziano con il codice di stato (5xxx). Questi errori restituiscono il messaggio di errore con il motivo corretto, quindi identificare questi errori è facile.



Errore interno: Quando accade qualcosa di imprevisto, vengono generati questi errori. Questi errori si verificano con il messaggio corretto, che contiene il motivo del verificarsi dell'errore.

Ecco il completo Elenco dei codici di stato HTTP .

Successivamente, capiamo praticamente come gestire gli errori lato client in Angular. Una gestione degli errori lato client è una delle caratteristiche tra le altre varie funzionalità per lo sviluppo di un'applicazione facile da usare.

Un utente si sente frustrato quando improvvisamente un'app ha smesso di funzionare e l'utente non ne trova il motivo. Riduce l'esperienza utente complessiva dell'applicazione. Per migliorare l'esperienza dell'utente, dobbiamo gestire correttamente gli errori.

Utilizzeremo i normali approcci di gestione degli errori come la gestione degli errori con gli operatori RxJS catchError e throwError e la gestione degli errori con HttpClient e HttpInterceptor.

Gestire gli errori in angolare con HttpClient e RxJS

Il modo più semplice per gestire gli errori in Angular è usare Il servizio HttpClient di Angular insieme agli operatori RxJS |_+_| e |_+_|. Viene effettuata una richiesta HTTP e restituisce i dati con una risposta se si verifica qualcosa di sbagliato, quindi restituisce un oggetto di errore con codice di stato di errore.

Di seguito è riportato il servizio in cui abbiamo utilizzato il handleError() funzione per gestire gli errori in Angular.

throwError

Gestione degli errori angolari 8/9

Nel servizio, abbiamo definito il |_+_| metodo. In questo metodo, stiamo controllando se l'errore è un'istanza di |_+_|. Questa funzione restituisce l'errore lato client o lato server. Questo errore è utile per un singolo servizio. Tuttavia, quando si tratta di gestire più servizi, dobbiamo aggiornare la funzione handleError in ogni servizio anche per una modifica minore.

Gestione degli errori con HttpClient e HttpInterceptor

Per gestire correttamente gli errori HttpInterceptor è il modo migliore, intercetta la richiesta Http. Aiuta a convertire la richiesta http prima dell'invio e dopo aver ricevuto la risposta dal server. È meglio utilizzato per aggiornare il formato dei dati, impostare le intestazioni, aggiungere token di autenticazione, ecc. Il servizio HttpInterceptor offre un modo migliore per gestire sistematicamente gli errori in un'app Angular.

Il seguente ErrorIntercept servizio può gestire più servizi. stiamo usando riprova(1) e catchError RxJS operatori per controllare il HttpErrorResponse . Questo codice è di natura centralizzata e può essere gestito da un'unica posizione, questo è stato di gran lunga il modo migliore per gestire gli errori in Angular.

Aggiungi il seguente codice in |_+_|:

il mio gmail non si carica
catchError

Importare HttpClientmodule , HTTP_INTERCETTATORI e ErrorIntercept in |_+_|, quindi iniettare HTTP_INTERCEPTORS e ErrorIntercept nell'array dei provider insieme a quel set multi: vero .

import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable, throwError } from 'rxjs'; import { retry, catchError } from 'rxjs/operators'; class Post { constructor( public id: string, public title: string, public body: string ) { } } @Injectable({ providedIn: 'root' }) export class PostService { private endpoint = 'https://jsonplaceholder.typicode.com/xyz'; constructor(private http: HttpClient) { } getPost(): Observable { return this.http.get(this.endpoint) .pipe( retry(1), catchError(this.handleError) ); } handleError(error) { let errorMessage = ''; if (error.error instanceof ErrorEvent) { // client-side error errorMessage = `Error: ${error.error.message}`; } else { // server-side error errorMessage = `Error Code: ${error.status} Message: ${error.message}`; } console.log(errorMessage); return throwError(errorMessage); } }

Ecco il |_+_|:

handleError()

Conclusione

Finalmente abbiamo completato il tutorial sulla gestione degli errori con esempi, spero che questo tutorial ti aiuti a comprendere il concetto di base della gestione degli errori lato client in Angular 8/9 con operatori RxJS e HttpInterceptor.

#angular #web-development