javascript / intermediate
Snippet
Abfangen und Transformieren von HTTP-Fehlern mit funktionalen Interzeptoren
Funktionale HTTP-Interzeptoren (`HttpInterceptorFn`) ermöglichen das Abfangen von Backend-Netzwerkfehlern und deren Überführung in ein standardisiertes, anwendungsspezifisches Fehlerdatenmodell. Dies entkoppelt UI-Services von technischen `HttpErrorResponse`-Strukturen.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { HttpInterceptorFn, HttpErrorResponse } from '@angular/common/http';import { catchError, throwError } from 'rxjs';export interface AppError {statusCode: number;friendlyMessage: string;}export const errorTransformInterceptor: HttpInterceptorFn = (req, next) => {return next(req).pipe(catchError((error: HttpErrorResponse) => {let friendlyMessage = 'An unexpected error occurred.';if (error.status === 404) {friendlyMessage = 'The requested resource was not found.';} else if (error.status === 403) {friendlyMessage = 'You do not have permission to perform this action.';}const appError: AppError = {statusCode: error.status,friendlyMessage};return throwError(() => appError);}));};
angular
Erklärung
1
export const errorTransformInterceptor: HttpInterceptorFn = (req, next) => {
Definiert einen eigenständigen funktionalen Interzeptor zur Verarbeitung ausgehender Requests und eingehender Responses.
2
catchError((error: HttpErrorResponse) => {
Fängt auftretende HTTP-Fehlerereignisse innerhalb der RxJS-Pipeline ab.
3
return throwError(() => appError);
Wirft das standardisierte Domänen-Fehlerobjekt über eine Factory-Funktion an Abonnenten weiter.