javascript / expert
Snippet
Globales Vue-Fehlerbehandlungsmuster mit Circuit-Breaker-Resilienz
Ein Experten-Fehlerbehandlungsmuster für app.config.errorHandler. Die Implementierung eines Circuit Breakers verhindert Kaskadenfehler oder Log-Überschwemmungen, wenn eine tief verschachtelte Vue-Komponente wiederholt abstürzt.
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
export function createResilientErrorHandler(threshold = 3, resetTimeoutMs = 10000) {let failureCount = 0;let circuitOpen = false;return (err, instance, info) => {if (circuitOpen) {console.warn('Circuit breaker open. Suppressing downstream telemetry.');return;}failureCount++;console.error(`[Vue Error Boundary] Source: ${info}`, err);if (failureCount >= threshold) {circuitOpen = true;setTimeout(() => {failureCount = 0;circuitOpen = false;}, resetTimeoutMs);}};}
vue
Erklärung
1
return (err, instance, info) => {
Implementiert die standardisierte globale Vue-Fehlerbehandlungs-Funktionssignatur.
2
if (circuitOpen) {
Umgeht die Protokollierung, wenn die Fehleranzahl den definierten Schwellenwert überschreitet.
3
setTimeout(() => { failureCount = 0; circuitOpen = false; }, resetTimeoutMs);
Plant ein automatisches Zurücksetzen nach einer Abkühlphase, um die reguläre Fehlerüberwachung wiederherzustellen.