Maison >développement back-end >C++ >Comment gérer gracieusement les exceptions de division par zéro en C ?
Gestion de la division par zéro exception
Les entiers en C ne prennent pas en charge les exceptions natives. Ainsi, dans l'extrait de code fourni :
int i = 0; cin >> i; // Input might be zero try { i = 5/i; } catch (std::logic_error e) { cerr << e.what(); }
lorsque l'entrée est nulle, cela entraînera un comportement indéfini plutôt que de déclencher une exception. Pour gérer de tels scénarios, vous devez effectuer la vérification et lever une exception explicitement.
Dans le code suivant, nous gérons la division par zéro des exceptions à l'aide de la méthode intDivEx :
#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; }
Ce code vérifie la division par zéro avant d'effectuer l'opération. Si une exception se produit, il imprime un message d'erreur. Sinon, il continue l'exécution.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!