Rückblick - Sichere Division
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 43 von 65.
Aufgabe
EinfachErstelle ein Programm, das mithilfe der Ausnahmebehandlung einen Rechner für sichere Division implementiert. Dein Programm sollte Fehler bei der Division durch null ordnungsgemäß behandeln und den Benutzern bei auftretenden Fehlern eine klare Rückmeldung geben.
- Lies eine String-Eingabe ein, die die erste Zahl (Dividend) darstellt
- Lies eine String-Eingabe ein, die die zweite Zahl (Divisor) darstellt
- Erstelle eine Funktion namens
safeDivision, die zwei Double-Parameter entgegennimmt und ein Double-Ergebnis zurückgibt - Die Funktion sollte einen
try-catch-Block verwenden, um mögliche Divisionsfehler zu behandeln: - Im
try-Block: Prüfe, ob der Divisor null ist, und löse eine Ausnahme mit der Nachricht"Division by zero is not allowed"aus, wenn dies zutrifft; andernfalls führe die Division durch - Im
catch-Block: Behandle die Ausnahme und gib0.0als sicheren Standardwert zurück - Konvertiere die Eingabe-Strings mithilfe von
double.parse()in Double-Werte - Rufe die Funktion
safeDivisionmit den konvertierten Werten auf - Gib die Ergebnisse im exakt unten gezeigten Format aus
Wenn die Eingaben beispielsweise "10.0" und "2.0" lauten, sollte dein Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyWenn die Eingaben "15.0" und "0.0" lauten, sollte dein Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingWenn die Eingaben "7.5" und "2.5" lauten, sollte dein Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyDein Programm muss die Funktion safeDivision implementieren, die einen try-catch-Block verwendet, um eine Division durch null zu behandeln. Prüfe im try-Block, ob der Divisor 0.0 entspricht, und verwende das Schlüsselwort throw, um manuell eine Ausnahme auszulösen, wenn dies zutrifft. Gib im catch-Block die Fehlermeldung aus und gib 0.0 als sicheren Ersatzwert zurück. Das Hauptprogramm sollte diese Funktion aufrufen und abhängig davon, ob ein Fehler aufgetreten ist, unterschiedliche Abschlussmeldungen anzeigen.
Probier es selbst
import 'dart:io';
// TODO: Erstellen Sie hier die Funktion safeDivision
void main() {
// Eingabe lesen
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Strings in Double umwandeln
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Kopfzeile anzeigen
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Rufen Sie die Funktion safeDivision auf und verarbeiten Sie das Ergebnis
// Denken Sie daran zu prüfen, ob ein Fehler aufgetreten ist, um die entsprechende Abschlussmeldung anzuzeigen
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste6Grundlagen der Fehlerbehandlung
Was sind Exceptions?Der 'try-catch'-BlockExceptions mit 'on' abfangenDer 'finally'-BlockEine Exception auslösenRückblick - Sichere DivisionÜbe selbstständig: Online-Dart-Compiler