0Pricing
Vue Academy · Lektion

Asynchrone Fehlerbehandlung in Composables

try/catch in asynchronen Composables, Fehlerstatus freigeben und Wiederholungslogik in useFetch

Asynchrone Fehlerbehandlung in Composables ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Fehler in asynchronen Composables

Composables, die Daten abrufen oder asynchrone Aufgaben ausführen, benötigen eine eigene Fehlerstrategie. Das Muster: Stellen Sie eine error-Referenz bereit, damit Verbraucher darauf reagieren können, während die asynchrone Funktion Fehler intern abfängt.

Eine error-Referenz bereitstellen

Geben Sie neben Daten und dem Ladezustand eine error-Referenz zurück. Verbraucher beobachten sie, um Meldungen anzuzeigen.

function useApi() {
  const data = ref(null);
  const error = ref(null);
  return { data, error };
}

try / catch in asynchronen Funktionen

Umschließen Sie innerhalb der asynchronen Funktion aufgerufene await-Ausdrücke mit try/catch und speichern Sie den Fehler in der error-Referenz, anstatt ihn unbehandelt auszulösen.

async function load() {
  try {
    data.value = await api.get();
  } catch (e) {
    error.value = e;
  }
}

Fehlerzustand zurücksetzen

Löschen Sie den vorherigen Fehler zu Beginn jedes Versuchs, damit veraltete Meldungen nach einem erfolgreichen erneuten Versuch nicht stehen bleiben.

async function load() {
  error.value = null;
  try { /* ... */ } catch (e) { error.value = e; }
}

Eine retryCount-Referenz

Um erneute Versuche zu unterstützen, verfolgen Sie die Anzahl der Versuche mit einer retryCount-Referenz. Erhöhen Sie sie jedes Mal, wenn der Benutzer es erneut versucht.

const retryCount = ref(0);
function retry() {
  retryCount.value++;
  load();
}

Automatische Wiederholungslogik

Sie können einen Vorgang bis zu einem Limit automatisch wiederholen und zwischen den Versuchen die Wartezeit schrittweise erhöhen. Beenden Sie ihn, sobald die Anzahl Ihr Maximum überschreitet.

async function load() {
  try {
    data.value = await api.get();
  } catch (e) {
    if (retryCount.value < 3) {
      retryCount.value++;
      return load();
    }
    error.value = e;
  }
}

Die vollständige API zurückgeben

Stellen Sie Daten, den Fehler, die Retry-Funktion und retryCount bereit, damit die Komponente alles Nötige zur Verfügung hat.

return { data, error, retry, retryCount };

Den Fehler verwenden

Rendern Sie in der Komponente abhängig von der error-Referenz und bieten Sie eine Schaltfläche zum erneuten Versuch an, die mit der bereitgestellten Funktion verbunden ist.

<p v-if="error">Failed: {{ error.message }}</p>
<button v-if="error" @click="retry">Retry</button>

Composable-Fehler im Vergleich zum globalen Handler

Die Fehlerbehandlung auf Composable-Ebene ist für erwartete Fehler gedacht, auf die die Benutzeroberfläche reagieren soll – etwa eine fehlgeschlagene Anfrage oder ein Validierungsfehler. Die Komponente entscheidet, wie sie diese darstellt.

Wann die globale Boundary eingreift

Der globale Handler und Error Boundaries fangen unerwartete, nicht behandelte Fehler ab – etwa Programmierfehler oder Abstürze beim Rendern. Sie sind das Sicherheitsnetz und nicht der primäre Handler für vorhersehbare asynchrone Fehler.

Die richtige Ebene wählen

Als Faustregel gilt: Behandeln Sie erwartete asynchrone Fehler innerhalb des Composables mit einer error-Referenz und lassen Sie wirklich unerwartete Fehler zum globalen Handler weiterlaufen. So bleibt die Rückmeldung an die Benutzeroberfläche lokal, während der Absturzschutz global ist.

Kurze Überprüfung

Wo sollten erwartete asynchrone Fehler (etwa ein fehlgeschlagener Fetch) behandelt werden?

Zusammenfassung

Sie haben gelernt, dass asynchrone Composables eine error-Referenz bereitstellen, try/catch in asynchronen Funktionen verwenden und mit einer retryCount-Referenz sowie einer Retry-Funktion erneute Versuche unterstützen. Fehler auf Composable-Ebene behandeln erwartete Fehler, während der globale Handler unerwartete Fehler abdeckt.

Häufig gestellte Fragen

Ist die Lektion „Asynchrone Fehlerbehandlung in Composables“ kostenlos?

Ja — der vollständige Text von „Asynchrone Fehlerbehandlung in Composables“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Asynchrone Fehlerbehandlung in Composables“?

try/catch in asynchronen Composables, Fehlerstatus freigeben und Wiederholungslogik in useFetch Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Asynchrone Fehlerbehandlung in Composables“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Lifecycle-Hook onErrorCaptured
  2. Komponenten als Error Boundaries
  3. app.config.errorHandler für globale Fehler
  4. Asynchrone Fehlerbehandlung in Composables
← Zurück zu Vue Academy