Исключение Python против C ++ обработка исключений - PullRequest
0 голосов
/ 25 июня 2010

С помощью следующего кода я получаю "Gotcha!" с питоном.

try:
    x = 0
    y = 3/x
except Exception:
    # ZeroDivisionError
    print "Gotcha!"

Я думаю, что это эквивалентный код C ++, но он не может понять исключение.

#include <iostream>

int main()
{
  int x = 0;
  //float y = 3.0/x;
  int z = 0;

  try {
      z = 3 / x;
  } catch (std::exception) {
      std::cout << "Gotcha!";
  }

  std::cout << z;
}
Floating point exception

Что пошло не так? Как я могу поймать это исключение?

1 Ответ

5 голосов
/ 25 июня 2010

В C ++ деление на ноль не генерирует исключение; это вызывает неопределенное поведение.

Вы должны проверить свой делитель перед тем, как фактически выполнить деление, поскольку невозможно узнать, что произойдет, если вы действительно оцените выражение деления с делителем нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...