Menu
Coddy logo textTech

Der 'try-catch'-Block

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 39 von 65.

Nachdem Sie nun verstehen, was Exceptions sind, lernen wir nun, wie man sie mit dem try-catch-Block elegant handhabt. Dies ist das grundlegende Werkzeug, das verhindert, dass Ihr Programm abstürzt, wenn etwas schiefgeht.

Der try-catch-Block funktioniert, indem potenziell problematischer Code in einen try-Abschnitt eingeschlossen wird. Wenn eine Exception auftritt, springt Dart, anstatt Ihr Programm zum Absturz zu bringen, sofort zum catch-Abschnitt, in dem Sie den Fehler angemessen behandeln können.

try {
  // Code, der eine Exception auslösen könnte
  int number = int.parse("abc");
} catch (e) {
  // Code, der ausgeführt wird, wenn eine Exception auftritt
  print("Something went wrong: $e");
}

In diesem Beispiel würde der Versuch, den String "abc" in eine Ganzzahl umzuwandeln, normalerweise Ihr Programm zum Absturz bringen. Da er jedoch in einen try-Block eingeschlossen ist, wird die Exception stattdessen im catch-Block abgefangen und verarbeitet. Die Variable e enthält Informationen darüber, was schiefgelaufen ist.

Dieser Ansatz ermöglicht es Ihrem Programm, auch dann weiterzulaufen, wenn unerwartete Situationen auftreten, was Ihren Code wesentlich robuster und benutzerfreundlicher macht.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das Benutzereingaben sicher in Zahlen umwandelt, indem es einen try-catch-Block verwendet. Ihr Programm sollte Fälle behandeln, in denen die Eingabe möglicherweise keine gültige Zahl ist, und verhindern, dass das Programm abstürzt.

  1. Lesen Sie eine String-Eingabe ein, die eine Zahl darstellt, die in eine Ganzzahl umgewandelt werden muss
  2. Verwenden Sie einen try-catch-Block, um die Konvertierung sicher mit int.parse() zu versuchen
  3. Wenn die Konvertierung erfolgreich ist, berechnen Sie das Quadrat der Zahl (multiplizieren Sie sie mit sich selbst)
  4. Wenn die Konvertierung fehlschlägt und eine Ausnahme auftritt, behandeln Sie den Fehler angemessen
  5. Zeigen Sie das entsprechende Ergebnis oder die Fehlermeldung im genau unten gezeigten Format an

Wenn die Eingabe zum Beispiel "5" ist, sollte Ihr Programm Folgendes ausgeben:

Processing input: 5
Conversion successful!
The square of 5 is: 25

Wenn die Eingabe "abc" ist, sollte Ihr Programm Folgendes ausgeben:

Processing input: abc
Error: Cannot convert 'abc' to a number
Please enter a valid integer

Wenn die Eingabe "12" ist, sollte Ihr Programm Folgendes ausgeben:

Processing input: 12
Conversion successful!
The square of 12 is: 144

Ihr Programm muss einen try-catch-Block verwenden, um die int.parse()-Operation zu umschließen. Versuchen Sie im try-Abschnitt, den Eingabestring in eine Ganzzahl umzuwandeln und deren Quadrat zu berechnen. Behandeln Sie im catch-Abschnitt jede Ausnahme, die während der Konvertierung auftritt, und zeigen Sie eine entsprechende Fehlermeldung an. Das Programm sollte normal weiterlaufen, unabhängig davon, ob die Konvertierung erfolgreich ist oder fehlschlägt.

Spickzettel

Verwenden Sie try-catch-Blöcke, um Ausnahmen elegant zu behandeln und Programmabstürze zu verhindern:

try {
  // Code, der eine Ausnahme verursachen könnte
  int number = int.parse("abc");
} catch (e) {
  // Code, der ausgeführt wird, wenn eine Ausnahme auftritt
  print("Something went wrong: $e");
}

Der try-Block enthält potenziell problematischen Code, während der catch-Block alle auftretenden Ausnahmen behandelt. Die Variable e enthält Informationen über die Ausnahme.

Probier es selbst

import 'dart:io';

void main() {
  // Eingabe-String lesen
  String? input = stdin.readLineSync();
  
  // Verarbeitungsnachricht anzeigen
  print('Processing input: $input');
  
  // TODO: Schreibe deinen Code unten
  // Verwende einen try-catch-Block, um die Eingabe sicher in eine Ganzzahl umzuwandeln
  // Berechne das Quadrat, wenn die Umwandlung erfolgreich ist
  // Behandle alle Ausnahmen, die während der Umwandlung auftreten
  
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf