La capture d'exception: division par zéro

Le code suivant n'est pas d'attraper une exception, lorsque j'essaie de diviser par 0. Dois-je lancer une exception, ou ne l'ordinateur automatiquement jeter un au moment de l'exécution?

int i = 0;

cin >> i;  //what if someone enters zero?

try {
    i = 5/i;
}
catch (std::logic_error e) {

    cerr << e.what();
}
  • Pourquoi ne pas vérifier si i est égal à zéro ou pas?
  • Pourquoi êtes-vous en essayant de diviser par ze— OH SHI—
  • Non, pas vraiment, j'ai édité ma question.
  • Cette question et toutes les réponses qui a suivi sont une belle étude de tout ce qui est faux avec des exceptions.
InformationsquelleAutor user33424 | 2011-05-25