In this post, we will see "Exception Handling in C++" using try, catch, throw.
What is Exception?
Exception is a run time error.
Why is it necessary to handle exceptions?
At run time, we may get unexpected output based on the input we give. Many times, for run time errors, compiler gives the standard error statements as output.
Check following program:
Program (exception.cpp)
output (exception.cpp)
This program is about dividing a number by another number. This program code doesn't have compiler errors. But at time, when we take 3 and 0, it gives error "Floating point exception (core dumped)" as we cannot divide any number by 0. If it is a big code, then it becomes difficult to identify exact errors in the code from the standard error statements. So, it is better; if we give our own error statements. This is possible by using try, catch blocks and throw keyword.
try: try specifies a block of code in which we may get exception.
throw: throw keyword throws an exception. It transfers control to the catch block.
catch: In catch block, an exception is handled. We may give our own error statement in this block.
Check the following example. Above same program is written using try, catch, throw keywords.
Program (exception1.cpp)
output (exception1.cpp)
Hope, you understood the Exception Handling in C++.
Thank you.
What is Exception?
Exception is a run time error.
Why is it necessary to handle exceptions?
At run time, we may get unexpected output based on the input we give. Many times, for run time errors, compiler gives the standard error statements as output.
Check following program:
Program (exception.cpp)
#include <iostream> using namespace std; int main() { int a,b,c; cout<<"Enter values for a and b\n"; cin>>a>>b; c=a/b; cout<<"Result="<<c<<"\n"; return 0; } |
output (exception.cpp)
parag@parag-Inspiron-N4010:~/Desktop/programs$ g++ exception.cpp parag@parag-Inspiron-N4010:~/Desktop/programs$ ./a.out Enter values for a and b 3 0 Floating point exception (core dumped) |
This program is about dividing a number by another number. This program code doesn't have compiler errors. But at time, when we take 3 and 0, it gives error "Floating point exception (core dumped)" as we cannot divide any number by 0. If it is a big code, then it becomes difficult to identify exact errors in the code from the standard error statements. So, it is better; if we give our own error statements. This is possible by using try, catch blocks and throw keyword.
try: try specifies a block of code in which we may get exception.
throw: throw keyword throws an exception. It transfers control to the catch block.
catch: In catch block, an exception is handled. We may give our own error statement in this block.
Check the following example. Above same program is written using try, catch, throw keywords.
Program (exception1.cpp)
#include <iostream> using namespace std; int main() { int a, b, c; cout<<"Enter values for a and b\n"; cin>>a>>b; /* try block defines a block where we can get exception*/ try { if(b == 0) { // throw exception to catch block throw "Division by zero not possible\n"; } c = a/b; cout<<"Result="<<c<<"\n"; } catch(char const* ex) /* catches and handle exception*/ { cout<<ex; } return 0; } |
output (exception1.cpp)
parag@parag-Inspiron-N4010:~/Desktop/programs$ g++ exception1.cpp parag@parag-Inspiron-N4010:~/Desktop/programs$ ./a.out Enter values for a and b 3 0 Division by zero not possible |
Hope, you understood the Exception Handling in C++.
Thank you.
No comments:
Post a Comment