除以零例外

时间:2015-03-27 15:55:21

标签: c++ exception-handling

任何人都可以帮我这个吗?编译器没有识别异常e但是我应该如何声明它?如果第二个为0,应用程序应该将两个数字分开抛出异常。

#include <iostream>
#include <exception>

using namespace std;

float divide(float, float) throw(exception);

int main(int argc, char** argv) {

  float a,b;

  float c=0;
  cin>>a;
  cin>>b;
  try{
    c=divide(a,b);
  }
  catch(Exception e){
    cout<<"You cannot do this";
  };
  return 0;
}

float divide(float a, float b) throw(exception)  {
  float c=a/b;
  if(b==0)
    throw  Exception &e;
  return c;
}

1 个答案:

答案 0 :(得分:1)

嗯,您尝试使用类Exception但从未声明过它。所以它不存在。

您可以使用其中一种标准异常类型。事实上,您可能正在尝试使用基类std::exception:这是小写 e

我建议std::runtime_error <stdexcept>,而不是{{1}}。