What is Exception Handling?
EXAMPLE CODE: Raise and handle an exception by accepting only positive numbers.
- Exceptions are run-time program anomalies.Exception handling provides a standard mechanism to handle such anomalies.
- When a exception is raised the normal program execution is suspended until it is handled.
- Raising of an exception is done by "throw" expression.
- Handling of an exception is dobe by the "catch" clause.
- "Try" block groups one or more program statements with one or more catch clauses.
- Use catch ( ...) to handle all exceptions.
EXAMPLE CODE: Raise and handle an exception by accepting only positive numbers.
#include <iostream> using namespace std; // Exception class class MyException { private: string iStr; public: MyException ( string aStr ); void print (); }; // User class class MyObject { private: int iA; int iB; public: MyObject ( int aa, int bb ); }; MyException::MyException ( string aStr ) { iStr = aStr; } void MyException::print () { cout << iStr << endl; } MyObject::MyObject ( int aa, int bb ) { iA = aa; iB = bb; if ( iA <= 0 iB <= 0 ) { throw MyException ("Invalid args. Require positive nos."); } } void main() { cout << "Enter two nos: " << endl; int arg1, arg2; cin >> arg1 >> arg2; try { MyObject obj(arg1, arg2); } catch ( MyException& e ) { e.print(); return; } cout << "Ok" << endl; } INPUT1: Enter two nos: 1 2 OUTPUT1: OK INPUT2: Enter two nos: 10 0 OUTPUT2: Invalid args. Require positive nos.
This line
if ( iA <= 0 iB <= 0 )
should be
if (( iA <= 0 )||( iB <= 0 ) )
and the return in int main catch statement should be
return 0;
In this program void main is used so it doesn't have to return anything, so return without any values is legal.
If the return type is int then, return value would have been 0 but in the above program return type is void and hence it need not return any value. Anyways, great piece of information; There are many concepts in exception handling which are helpful in writing an error free code. I found this website which gave me a great insight about exception handling.