Fehlermodell
Jeder Fehler taucht als abgelehntes Versprechen oder über das
onError-Abo auf — niemals als ungefangene
Ausnahme.
1. TimeoutError
Die exportierte TimeoutError-Klasse unterscheidet die Zeitüberschreitungen
der Host-Wartung von gewöhnlichen Fehlern:
class TimeoutError extends Error {
readonly operation: string; // die abgelaufene, erwartete Operation
readonly timeoutMs: number; // die überschrittene konfigurierte Grenze
}
// error.name === 'DashletTimeoutError'
// error.message === '<operation> timed out after <timeoutMs>ms'
Prüfen Sie auf Zeitüberschreitung mit instanceof TimeoutError (exportiert
neben DEFAULT_TIMEOUT_MS und withTimeout) oder über den Namen
'DashletTimeoutError'.
Die Vorgabe ist DEFAULT_TIMEOUT_MS = 5000, konfigurierbar über
DashletOptions.timeoutMs (siehe DashletOptions).
2. Begrenzte Antwort-Semantik
Der enaio-Vertrag definiert keine Antwortgarantie. Jede Host-Interaktion,
die auf eine Antwort wartet — die init-Wartephase und jeder Methodenaufruf —
wird in eine konfigurierte Antwortzeit eingebettet: Das Rennen löst sich mit
dem Arbeitsergebnis, wenn dieses zuerst eintritt, und wird andernfalls mit
einer TimeoutError abgelehnt; der Timer wird immer aufgeräumt. Eine
Zeitüberschreitung ist damit ein abfangbarer, beobachtbarer Fehlerzustand —
niemals ein endloses Hängen. Das zugrunde liegende Primitiv ist
withTimeout.
3. Fehlerquelle → Form
| Fehlerquelle | Ablehnungsform |
|---|---|
Host antwortet nicht innerhalb von |
|
Webclient-Host antwortet mit einer |
Ein Wrapper-Fehler mit |
Rich-Client-Bridge-Aufruf wirft eine Ausnahme, oder die Bridge-Methode fehlt |
Deskriptive Ablehnung — ein abgelehntes Versprechen, niemals eine ungefangene Ausnahme |
Ungültiger Optionswert bei der Installation (z. B. ein |
Deskriptive |
Unbekannte Methode über |
Deskriptive |
Jede portable Methode oder |
Begrenztes |
Anderer Code hat |
Keine Ablehnung: ein einfaches |
Zwei Klärungen:
-
Die Standalone-init-Wartephase ist kein Fehler —
dashlet.initlöst sich (innerhalb vondetectionTimeoutMs) mit dem beobachtbaren, abgemilderten Standalone-Kontext auf; nur die Methodenaufrufe werden abgelehnt. -
Ein Webclient-Host-Fehler lehnt nur den jeweiligen wartenden Aufruf ab; er zerstört das Dashlet nicht und beeinflusst spätere Aufrufe nicht.