Может ли кто-нибудь мне помочь? Компилятор не распознает исключение e, но как я должен его объявить? Приложение просто должны разделить два числа метательные исключение, если второе является 0.divide by zero exception
#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, если это оказывается «Исключение/исключение». –
Это, безусловно, часть этого. Тем не менее, я был бы очень удивлен, увидев компилятор, который принимает 'throw exception & e;'. – Wintermute
После того, как вы исправили опечатку, вам нужно протестировать перед делением, а не после. В противном случае деление приведет к неопределенному поведению: оно может привести к сбою программы, и компилятору разрешено считать, что он не равен нулю и исключает тест. –