Heim >Backend-Entwicklung >C++ >Wie kann man in C ordnungsgemäß mit Division-durch-Null-Ausnahmen umgehen?
Umgang mit der Divide-by-Zero-Ausnahme
Ganzzahlen in C haben keine native Ausnahmeunterstützung. Im bereitgestellten Codeausschnitt heißt es also:
int i = 0; cin >> i; // Input might be zero try { i = 5/i; } catch (std::logic_error e) { cerr << e.what(); }
Wenn die Eingabe Null ist, führt dies zu undefiniertem Verhalten, anstatt eine Ausnahme auszulösen. Um solche Szenarien zu bewältigen, müssen Sie die Prüfung durchführen und explizit eine Ausnahme auslösen.
Im folgenden Code behandeln wir Ausnahmen bei der Division durch Null mithilfe der intDivEx-Methode:
#include <iostream> #include <stdexcept> inline int intDivEx(int numerator, int denominator) { if (denominator == 0) throw std::overflow_error("Divide by zero exception"); return numerator / denominator; } int main() { int i = 42; try { i = intDivEx(10, 0); } catch (std::overflow_error &e) { std::cout << e.what() << " -> "; } std::cout << i << std::endl; try { i = intDivEx(10, 2); } catch (std::overflow_error &e) { std::cout << e.what() << " -> "; } std::cout << i << std::endl; return 0; }
Dieser Code prüft vor der Ausführung der Operation, ob eine Division durch Null erfolgt. Wenn eine Ausnahme auftritt, wird eine Fehlermeldung ausgegeben. Andernfalls wird die Ausführung fortgesetzt.
Das obige ist der detaillierte Inhalt vonWie kann man in C ordnungsgemäß mit Division-durch-Null-Ausnahmen umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!