javascript / expert
Snippet
Symbol-getaggte AggregateError-Verarbeitung in React-Fehlerbehandlung
Dieses Beispiel nutzt objektorientierte Error-Unterklassen, globale Symbols für private Metadaten und ES2021 `AggregateError` zur Bündelung mehrerer nebenläufiger asynchroner Fehler. Es zeigt ein robustes Muster zur Fehler-Taxonomie-Klassifizierung in React-Fehleranzeigen.
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
29
30
31
32
33
34
35
import React from 'react';const ERROR_TAXONOMY = Symbol.for('APP_ERROR_TAXONOMY');export class DomainError extends Error {constructor(message, code) {super(message);this.name = 'DomainError';this[ERROR_TAXONOMY] = code;}}export function processBatchErrors(errors) {const combined = new AggregateError(errors, 'Batch operation encountered multiple errors');combined[ERROR_TAXONOMY] = 'BATCH_FAILURE';return combined;}export function ErrorInspector({ error }) {if (!error) return null;const taxonomyCode = error[ERROR_TAXONOMY] || 'UNKNOWN_ERROR';const subErrors = error instanceof AggregateError ? error.errors : [error];return (<div role="alert" data-taxonomy={taxonomyCode}><h2>Error Classification: {String(taxonomyCode)}</h2><ul>{subErrors.map((err, idx) => (<li key={idx}>{err.name}: {err.message}</li>))}</ul></div>);}
react
Erklärung
1
const ERROR_TAXONOMY = Symbol.for('APP_ERROR_TAXONOMY');
Erzeugt einen eindeutigen, globalen Symbol-Schlüssel zur Anbringung von Diagnose-Tags an Fehlerinstanzen.
2
export class DomainError extends Error {
Erweitert die integrierte Error-Klasse zur Erstellung domänenspezifischer Ausnahmegrenzen mit eigenem Stack.
3
const combined = new AggregateError(errors, '...');
Erzeugt einen ES2021 AggregateError zur Zusammenfassung mehrerer nebenläufiger Fehler in ein einzelnes Objekt.
4
const subErrors = error instanceof AggregateError ? error.errors : [error];
Wertet Fehlertypen dynamisch mittels instanceof aus, um verschachtelte Fehler-Arrays zu extrahieren.