Rückblick - Sichere Division
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 53 von 56.
Aufgabe
EinfachErstellen Sie ein Programm, das eine sichere Division unter Verwendung einer umfassenden Ausnahmebehandlung implementiert. Diese Herausforderung testet Ihre Fähigkeit, Funktionsdesign mit Fehlermanagement zu kombinieren, um Division-durch-Null-Fehler elegant zu behandeln.
Die folgenden Eingaben werden bereitgestellt:
- Ein Double
numerator, der die zu teilende Zahl darstellt - Ein Double
denominator, der die Zahl darstellt, durch die geteilt werden soll
Ihr 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
"Division by zero error"mitthrowauslö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 Nachricht ausgeben, je nachdem, ob die Division erfolgreich ist oder fehlschlägt
Verwenden Sie das folgende exakte Ausgabeformat:
Für eine erfolgreiche Division:
Result: [division_result]Für einen Division-durch-Null-Fehler:
Error: Division by zero errorDenken Sie daran, dass Ihre Funktion, wenn der Nenner Null ist, sofort eine Ausnahme mit throw auslösen sollte, bevor die Division versucht wird. Der catch-Block sollte den Typ const char* spezifizieren, um das ausgelöste String-Literal zu behandeln. Wenn eine Ausnahme ausgelöst wird, springt das Programm direkt von der throw-Anweisung zum passenden catch-Block. Dies verhindert, dass eine Division durch Null stattfindet, und ermöglicht es Ihrem Programm, den Fehler elegant zu 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