#include class DivideByZero { private: std::string message; public: DivideByZero() : message("ERROR: Division by zero") { } void print() { std::cout << message << std::endl; } }; //float divide(int numerator, int denominator) throw (DivideByZero) { //only DivideByZero exception is allowed //float divide(int numerator, int denominator) throw () { //no exceptions allowed float divide(int numerator, int denominator) { // all exceptions allowed if (denominator==0) throw DivideByZero(); return (float)numerator/denominator; } void first() { int num1=1, num2=0; try { float res=divide(num1, num2); std::cout << "Result = " << res << std::endl; } catch (DivideByZero e) { e.print(); } } /**/ /* void second() { int num1=1, num2=0; float res=divide(num1, num2); std::cout << "Result = " << res << std::endl; } void first() { try { second(); } catch (DivideByZero e) { e.print(); } } */ int main() { first(); //second(); return 0; }