c:c_exception_handling
This is an old revision of the document!
Table of Contents
C - C++ Exception Handling
Throwing Exception
#include <iostream> #include <stdexcept> using std::cin; using std::cout; using std::endl; using std::runtime_error; class DivideByZeroException : public runtime_error { public: DivideByZeroException::DivideByZeroException(): runtime_error( "attempted to divide by zero" ) {} }; double quotient( int numerator, int denominator ) { throw DivideByZeroException(); // terminate function return 0; } int main() { try { double result = quotient( 1, 1 ); cout << "The quotient is: " << result << endl; } catch ( DivideByZeroException ÷ByZeroException ) { cout << "Exception occurred: " << divideByZeroException.what() << endl; } return 0; }
Throw Types
#include <iostream> using namespace std; // only throw ints, chars, and doubles void f(int val) throw(int, char, double) { if(val==0) throw val; if(val==1) throw 'a'; if(val==2) throw 123.23; } int main() { try{ f(0); // also, try passing 1 and 2 to f() } catch(int i) { cout << "Caught an integer\n"; } catch(char c) { cout << "Caught char\n"; } catch(double d) { cout << "Caught double\n"; } return 0; }
c/c_exception_handling.1507804593.txt.gz · Last modified: 2020/07/15 09:30 (external edit)