OOP USING C++
• When executing C++ code, different errors can occur: coding errors
made by the programmer, errors due to wrong input, or other
unforeseeable things.
• When an error occurs, C++ will normally stop and generate an error
message. The technical term for this is: C++ will throw an exception
(throw an error).
• Exception is an event which occurs during execution of program that
disrupts normal flow of program
• Exception Handling is a process to handle runtime errors.
• We perform exception handling so the normal flow of the application
can be maintained even after runtime errors.
• exception is an event or object which is thrown at runtime.
• All exceptions are derived from exception class. It is a runtime error
which can be handled. If we don't handle the exception, it prints
exception message and terminates the program.
EXCEPTION HANDLING: CONTINUED
• Example of Exception like Divide by zero, Accessing array element
beyond its limit, running out of memory etc.
• Exception handling mechanism consists of followin parts:
1) Find the problem(Hit the Exception)
2) Inform about its occurrence(Throw the exception)
3) Receive error information(Catch the exception)
4) Take proper action(Handle the exception)
WHY EXCEPTION HANDLING
• Seperation of Error handling code from normal code
• functions can handle any exceptions they choose
• Grouping of error types
EXCEPTION HANDLING : CONTINUED
• Exception Handling can be done in 3 ways:
1) try block: try block is used to place the code that may occur
exception. Exception are thrown inside the try block.
2) catch block: catches an exception which is thrown from try block.
The catch keyword indicates the catching of an exception. It is used to
handle the exception. It defines action to be taken when exception
occur
3) throw keyword: throws an exception when a problem is detected.
SYNTAX OF EXCEPTION HANDLING
EXCEPTION HANDLING MECHANISM
EXAMPLE WITHOUT EXCEPTION HANDLING
#include<iostream>
void main()
{
int a,b;
a=10;
b=a/0; //exception occurs
cout<<”result: “<<b;
}
Here program will be terminated you will not get output because exception
occurs at line 6 and flow of program comes out of main() function without
executing line 7.
Exception Handling
#include<iostream>
void main()
{
int a,b;
a=10;
try
{
b=a/0; //exception occurs
}
catch(const char* e)
{
cout<<”Divide by zero error” //exception handler code
}
}
EXAMPLE OF EXCEPTION HANDLING
#include<iostream>
void main()
{
int n1,n2,result;
cout<<”Enter first number: “;
cin>>n1; n1=12
cout<<”Enter second number: “
cin>>n2; n2=20
try
{
if(n2==0)
{
throw n2;
}
else
{
result=n1/n2; 12/20=0.....
}
}
catch(int x) //x=0 n2=0
{
cout<<”Can't divide by “<<x;
}
cout<”End of the program”;
}
Note: Guess the output
1) n1=45, n2=0
2) n1=12, n2=20
EXAMPLE OF EXCEPTION HANDLING
#include <iostream>
using namespace std;
double division(int a, int b) {
if( b == 0 ) {
throw "Division by zero
condition!";
}
return (a/b);
}
int main () {
int x = 50;
int y = 0;
double z = 0;
try {
z = division(x, y);
cout << z << endl;
} catch (const char* msg) {
cerr << msg << endl;
}
return 0;
}
MULTIPLE CATCH EXCEPTION
• Multiple catch statements are
used in case of more than one
exceptions.
• For handling multiple exceptions
we can write multiple catch
statements with different
declarations.
• syntax of multiple catch
statements:
CATCH ALL STATEMENTS
• In some cases it is not feasible to write multiple catch blocks for each
kind of exception in such cases we can write single catch block which
catches all the exceptions
• syntax:
catch(....)
{
statements;
.................
}
EXAMPLE OF EXCEPTION HANDLING 2
EXAMPLE CONTINUED
• GUESS THE OUTPUT FOR FOLLOWING INPUT:
1) n1=20, n2=5
2) n1=5, n2=20
3) n1=-1, n2=20
EXAMPLE OF MULTIPLE CATCH BLOCKS
RETHROWING EXCEPTION
• We can rethrow the exception
where we can have inner and
outer try-catch
statements(nested try-catch).
• Throwing of exception from
inner catch block to outer catch
block is called Rethrowing
Exception
EXAMPLE OF RETHROWING EXCEPTION
DEFINE NEW EXCEPTION
• In this user can create and throw its own exception with the help of
throw statement
EXAMPLE OF CUSTOM EXCEPTION
#include <iostream>
using namespace std;
class Demo {
int num;
public:
demo(int x)
{
try {
if (x == 0){
throw "Zero not allowed ";
}
num = x;
show();
}
catch (const char* exp) {
cout << "Exception caught n ";
cout << exp << endl;
}
}
void show()
{
cout << "Num = " << num << endl;
}
};
void main()
{
Demo d = demo(0);
Demo d1= demo(1);
}
Exception handling c++

Exception handling c++

  • 1.
  • 2.
    • When executingC++ code, different errors can occur: coding errors made by the programmer, errors due to wrong input, or other unforeseeable things. • When an error occurs, C++ will normally stop and generate an error message. The technical term for this is: C++ will throw an exception (throw an error). • Exception is an event which occurs during execution of program that disrupts normal flow of program
  • 3.
    • Exception Handlingis a process to handle runtime errors. • We perform exception handling so the normal flow of the application can be maintained even after runtime errors. • exception is an event or object which is thrown at runtime. • All exceptions are derived from exception class. It is a runtime error which can be handled. If we don't handle the exception, it prints exception message and terminates the program.
  • 4.
    EXCEPTION HANDLING: CONTINUED •Example of Exception like Divide by zero, Accessing array element beyond its limit, running out of memory etc. • Exception handling mechanism consists of followin parts: 1) Find the problem(Hit the Exception) 2) Inform about its occurrence(Throw the exception) 3) Receive error information(Catch the exception) 4) Take proper action(Handle the exception)
  • 5.
    WHY EXCEPTION HANDLING •Seperation of Error handling code from normal code • functions can handle any exceptions they choose • Grouping of error types
  • 6.
    EXCEPTION HANDLING :CONTINUED • Exception Handling can be done in 3 ways: 1) try block: try block is used to place the code that may occur exception. Exception are thrown inside the try block. 2) catch block: catches an exception which is thrown from try block. The catch keyword indicates the catching of an exception. It is used to handle the exception. It defines action to be taken when exception occur 3) throw keyword: throws an exception when a problem is detected.
  • 7.
  • 8.
  • 9.
    EXAMPLE WITHOUT EXCEPTIONHANDLING #include<iostream> void main() { int a,b; a=10; b=a/0; //exception occurs cout<<”result: “<<b; } Here program will be terminated you will not get output because exception occurs at line 6 and flow of program comes out of main() function without executing line 7.
  • 10.
    Exception Handling #include<iostream> void main() { inta,b; a=10; try { b=a/0; //exception occurs } catch(const char* e) { cout<<”Divide by zero error” //exception handler code } }
  • 11.
    EXAMPLE OF EXCEPTIONHANDLING #include<iostream> void main() { int n1,n2,result; cout<<”Enter first number: “; cin>>n1; n1=12 cout<<”Enter second number: “ cin>>n2; n2=20 try { if(n2==0) { throw n2; } else { result=n1/n2; 12/20=0..... } } catch(int x) //x=0 n2=0 { cout<<”Can't divide by “<<x; } cout<”End of the program”; } Note: Guess the output 1) n1=45, n2=0 2) n1=12, n2=20
  • 12.
    EXAMPLE OF EXCEPTIONHANDLING #include <iostream> using namespace std; double division(int a, int b) { if( b == 0 ) { throw "Division by zero condition!"; } return (a/b); } int main () { int x = 50; int y = 0; double z = 0; try { z = division(x, y); cout << z << endl; } catch (const char* msg) { cerr << msg << endl; } return 0; }
  • 13.
    MULTIPLE CATCH EXCEPTION •Multiple catch statements are used in case of more than one exceptions. • For handling multiple exceptions we can write multiple catch statements with different declarations. • syntax of multiple catch statements:
  • 14.
    CATCH ALL STATEMENTS •In some cases it is not feasible to write multiple catch blocks for each kind of exception in such cases we can write single catch block which catches all the exceptions • syntax: catch(....) { statements; ................. }
  • 15.
  • 16.
    EXAMPLE CONTINUED • GUESSTHE OUTPUT FOR FOLLOWING INPUT: 1) n1=20, n2=5 2) n1=5, n2=20 3) n1=-1, n2=20
  • 17.
    EXAMPLE OF MULTIPLECATCH BLOCKS
  • 18.
    RETHROWING EXCEPTION • Wecan rethrow the exception where we can have inner and outer try-catch statements(nested try-catch). • Throwing of exception from inner catch block to outer catch block is called Rethrowing Exception
  • 19.
  • 20.
    DEFINE NEW EXCEPTION •In this user can create and throw its own exception with the help of throw statement
  • 21.
    EXAMPLE OF CUSTOMEXCEPTION #include <iostream> using namespace std; class Demo { int num; public: demo(int x) { try { if (x == 0){ throw "Zero not allowed "; } num = x; show(); } catch (const char* exp) { cout << "Exception caught n "; cout << exp << endl; } } void show() { cout << "Num = " << num << endl; } }; void main() { Demo d = demo(0); Demo d1= demo(1); }