0Pricing
Dart Academy · Lektion

Benutzerdefinierte Exceptions und rethrow

Aussagekräftige Fehler definieren und erneut auslösen

Benutzerdefinierte Exceptions und rethrow ist eine kostenlose Dart 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 Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Aussagekräftige Fehler

Allgemeine Exceptions verbergen die Absicht. Eine custom exception benennt das genaue Problem und macht Fehler in der gesamten App verständlicher. 🏷️

Eine Exception implementieren

Erstellen Sie eine Klasse, die Exception implementiert. Damit wird sie als auslösbarer Fehlertyp gekennzeichnet, den Dart und andere Entwickler sofort erkennen.

class PaymentException implements Exception {}

Eine Nachricht mitführen

Geben Sie Ihrer Exception über den Konstruktor ein message-Feld, damit Handler den Grund des Fehlers auslesen können.

class PaymentException implements Exception {
  final String message;
  PaymentException(this.message);
}

Ein verständliches toString

Überschreiben Sie toString, damit das Ausgeben der Exception einen klaren Satz statt nur des Klassennamens anzeigt.

@override
String toString() => 'PaymentException: $message';

Eigene Exceptions auslösen

Lösen Sie eine benutzerdefinierte Exception genauso aus wie eine integrierte. Verwenden Sie throw mit einer neuen Instanz, wenn eine Regel verletzt wird.

throw PaymentException('Card declined');

Nach Ihrem Typ abfangen

Fangen Sie Ihre Exception mit einer on-Klausel ab, genau wie integrierte Typen, um diesen speziellen Fall gezielt zu behandeln.

try {
  pay();
} on PaymentException catch (e) {
  print(e);
}

Manchmal können Sie es nicht beheben

Ein Handler kann einen Fehler protokollieren, ihn aber möglicherweise nicht beheben. Statt ihn zu verschlucken, können Sie ihn mit rethrow weiterreichen.

Das Schlüsselwort rethrow

rethrow löst die aktuelle Exception erneut aus und bewahrt ihren ursprünglichen Stacktrace, sodass Aufrufer sehen, wo sie tatsächlich begonnen hat.

catch (e) {
  log(e);
  rethrow;
}

rethrow ist besser als throw e

throw e setzt den Stacktrace zurück, während rethrow ihn unverändert erhält. Bevorzugen Sie innerhalb eines catch immer rethrow, wenn Sie eine Exception erneut auslösen.

Protokollieren und weiterreichen

Ein häufiges Muster: Fangen Sie den Fehler ab, um ihn zu loggen, und verwenden Sie anschließend rethrow, damit eine höhere Schicht über die Wiederherstellung entscheidet.

catch (e) {
  logger.error(e);
  rethrow;
}

Nützliche Felder hinzufügen

Benutzerdefinierte Exceptions können zusätzliche Daten wie einen code oder den fehlgeschlagenen Wert enthalten. So erhalten Handler mehr Kontext für ihre Reaktion.

class ApiException implements Exception {
  final int code;
  ApiException(this.code);
}

Kurze Überprüfung

Warum sollte innerhalb eines catch rethrow statt throw e verwendet werden?

Zusammenfassung

Sie können jetzt aussagekräftige Exceptions erstellen, die Exception implementieren, Daten mitführen und mit rethrow Fehler sauber nach oben weiterreichen. 🚀

Häufig gestellte Fragen

Ist die Lektion „Benutzerdefinierte Exceptions und rethrow“ kostenlos?

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

Was lerne ich in „Benutzerdefinierte Exceptions und rethrow“?

Aussagekräftige Fehler definieren und erneut auslösen Du übst Dart 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 Dart Academy zu starten?

Keine Vorkenntnisse erforderlich. Dart 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 „Benutzerdefinierte Exceptions und rethrow“?

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 Dart Academy-Lektion Code schreiben und ausführen?

Ja. Jede Dart 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. throw, try und catch
  2. on-Klauseln und Exception-Typen
  3. finally und garantierte Bereinigung
  4. Benutzerdefinierte Exceptions und rethrow
← Zurück zu Dart Academy