python异常与C ++异常处理

时间:2010-06-24 21:11:50

标签: c++ exception-handling

使用以下代码,我得到了“Gotcha!”用python。

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 个答案:

答案 0 :(得分:5)

在C ++中,除以零不会产生异常;它会导致未定义的行为。

必须在实际执行除法之前检查你的除数,因为如果你真的用零除数来评估除法表达式,就无法知道会发生什么。