Skip to content

Kapitel 16: Häufige Fehler und Lösungen

16.1 Häufiger Fehler 1: Fehler bei der Verwendung von Null-Sicherheit

Fehler

dart
String name;  // Nicht initialisiert
print(name);   // Fehler: Non-nullable variable 'name' must be assigned before it can be used

Lösung

dart
String name = 'Dart';  // Initialisieren
// oder
String? name;          // Nullable machen

16.2 Häufiger Fehler 2: Falsche Verwendung von Funktionsparametern

Fehler

dart
void gruß(String name, int alter) {  // Erforderliche Parameter
  print('Hallo ' + name);
}

void main() {
  gruß();  // Fehler: Zu wenig Argumente
}

Lösung

dart
void gruß([String? name, int alter = 0]) {  // Optionale Parameter
  print('Hallo ' + (name ?? 'Gast'));
}

void main() {
  gruß();  // Korrekt
}

16.3 Häufiger Fehler 3: Falsche Ausführungsreihenfolge bei asynchronem Code

Fehler

dart
Future<void> datenHolen() async {
  String daten = await holeDaten();
  print(daten);
}

void main() {
  datenHolen();
  print('Andere Aufgaben');  // Wird zuerst ausgeführt
}

Lösung

dart
Future<void> main() async {
  await datenHolen();
  print('Andere Aufgaben');  // Wird nach datenHolen ausgeführt
}

16.4 Häufiger Fehler 4: Fehler beim Vererben und Überschreiben von Klassen

Fehler

dart
class Tier {
  void geräusch() {
    print('Tier macht Geräusch');
  }
}

class Hund extends Tier {
  void geräusch() {  // Fehlt @override
    print('Hund bellt');
  }
}

Lösung

dart
class Hund extends Tier {
  @override
  void geräusch() {
    print('Hund bellt');
  }
}

16.5 Häufiger Fehler 5: Falscher Bibliotheksimportpfad, Drittanbieter-Bibliotheksinstallation fehlgeschlagen

Fehler

dart
import 'math_utils.dart';  // Falscher Pfad

Lösung

dart
import '../lib/math_utils.dart';  // Richtiger Pfad
// oder
import 'package:projekt/lib/math_utils.dart';  // Package-Pfad

Für Drittanbieter-Bibliotheken:

yaml
# pubspec.yaml
dependencies:
  http: ^1.0.0
bash
dart pub get

16.6 Debugging-Tipps

  • VS Code Debugging: Haltepunkte setzen, Variablen überwachen
  • print(): Einfache Debug-Ausgabe
  • Protokollierung: Verwende dart:developer für erweiterte Protokollierung

Frei für alle Anfänger