// PL10/exceptiondemo.cpp // illustrates exception usage for user defined exception // Niels Walet. Last edited 03/12/2019 #include<iostream> #include<cstdlib> //for exit const int divide_flag(-1); double divide(double x, double y) { if(x==0) throw divide_flag; return y/x; } int main() { double x{3.},y{4.}; double result; try { result=divide(x,y); std::cout<<"y/x = "<<result<<std::endl; x=0; result=divide(x,y); std::cout<<"y/x = "<<result<<std::endl; } catch(int error_flag) { if(error_flag == divide_flag) { std::cerr<<"Error: divide by zero"<<std::endl; exit(error_flag); } } return 0; } |