Rückblick - Sichere Division
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 53 von 56.
Aufgabe
EinfachErstelle ein Programm, das eine sichere Division mithilfe einer umfassenden Ausnahmebehandlung implementiert. Diese Herausforderung prüft deine Fähigkeit, Funktionsentwurf und Ausnahmeverwaltung zu kombinieren, um Fehler durch Division durch null ordnungsgemäß zu behandeln.
Die folgenden Eingaben werden bereitgestellt:
- Ein Double
numerator, das die zu dividierende Zahl darstellt - Ein Double
denominator, das den Divisor darstellt
Dein Programm sollte:
- Eine Funktion namens
safeDivideerstellen, die zwei Double-Parameter (numerator und denominator) entgegennimmt - Innerhalb der Funktion prüfen, ob der Nenner gleich null ist
- Wenn der Nenner null ist, den String
throwmit"Division by zero error"auslösen - Wenn der Nenner nicht null ist, das Divisionsergebnis berechnen und als Double zurückgeben
- In der Hauptfunktion
safeDivideinnerhalb einestry-Blocks mit den Eingabewerten aufrufen - Einen
catch-Block verwenden, um die ausgelöste String-Ausnahme zu behandeln - Die entsprechende Meldung ausgeben, je nachdem, ob die Division erfolgreich ist oder fehlschlägt
Verwende das folgende genaue Ausgabeformat:
Bei erfolgreicher Division:
Result: [division_result]Bei einem Fehler durch Division durch null:
Error: Division by zero errorDenke daran: Wenn der Nenner null ist, sollte deine Funktion sofort eine Ausnahme mit throw auslösen, bevor sie die Division versucht. Der catch-Block sollte den Typ const char* angeben, um das ausgelöste Stringliteral zu behandeln. Wenn eine Ausnahme ausgelöst wird, springt das Programm direkt von der throw-Anweisung zum passenden catch-Block. Dadurch wird verhindert, dass eine Division durch null stattfindet, und dein Programm kann den Fehler ordnungsgemäß behandeln, anstatt abzustürzen.
Probier es selbst
#include <iostream>
using namespace std;
int main() {
// Eingabe lesen
double numerator, denominator;
cin >> numerator >> denominator;
// TODO: Schreiben Sie Ihren Code hier
// Erstellen Sie die Funktion safeDivide oberhalb von main()
// Verwenden Sie einen try-catch-Block, um Ausnahmen zu behandeln
return 0;
}Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen5Projekt: Inventar-Tool
Projekt-SetupArtikel hinzufügen und aktualisieren8Grundlagen der Fehlerbehandlung
Einführung in ExceptionsDie 'try'- und 'catch'-BlöckeDas 'throw'-SchlüsselwortVerschiedene Exception-TypenDer Catch-All-HandlerRückblick - Sichere Division3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügenÜbe selbstständig: Online-C++-Compiler