Write a program containing a possible exception. Use a try block to throw it and a catch block to handle it promptly.
#include<iostream> #include<math> #define pi 3.1416 using namespace std; void power_factor(float a) { if(a>1 || a<-1) throw(a); else cout<<"Voltage(V)is lagging from current(I) by "<<acos(a)*180/pi<<" degree\n"; } int main() { float a; try { cout<<" Enter power factor "; cin>>a; power_factor(a); } catch(float b) { cout<<" Caught an exception \n"; } return 0; }
OUTPUT
Enter power factor 2
Write a program that illustrates the application of multiple catch statements.
#include<iostream> #define size 5 using namespace std; void multiple_catch(int n) { float v[size]; try { if(n>size) throw(n); else if(n<=0) throw(0.01); else { cout<<" Enter "<<n<<" elements one by one \n"; for(int i=0;i<n;i++) cin>>v[i]; cout<<" Now contents of v["<<n<<"]: \n"; for(i=0;i<n;i++) cout<<v[i]<<" "; } } catch(int m) { cout<<" array size must be less than or equal "<<size<<" \n"; } catch(double c) { cout<<" array size must be positive except 0 \n"; } } int main() { int s; cout<<" How many elements do you want to enter ? "; cin>>s; multiple_catch(s); return 0; }
OUTPUT
How many elements do you want to enter ? 20
Write a program which uses catch(…) handler.
#include<iostream> #define size 5 using namespace std; void multiple_catch(int n) { float v[size]; try { if(n>size) throw(n); else if(n<=0) throw(0.01); else { cout<<" Enter "<<n<<" elements one by one \n"; for(int i=0;i<n;i++) cin>>v[i]; cout<<" Now contents of v["<<n<<"]: \n"; for(i=0;i<n;i++) cout<<v[i]<<" "; } } catch(...) { cout<<" an exception is detected \n"; } } int main() { int s; cout<<" How many elements do you want to enter ? "; cin>>s; multiple_catch(s); return 0; }
OUTPUT
How many elements do you want to enter ? 10
Write a program that demonstrates how certain exception types are not allowed to be thrown.
#include<iostream> using namespace std; void empty() throw() { cout<<"In empty()\n"; } void with_type( float x) throw(int) { if(x==1) throw(1); else if(x==1.1) throw (2.1); } int main() { try { empty(); with_type(1); } catch (int n) { cout<<"Caught an int = "<<n; } catch(float) { cout<<"Caught a float "; } return 0; }
OUTPUT
In empty()
Write a program to demonstrate the concept of re-throwing an exception.
#include<iostream> using namespace std: void division(int a,int b) { try { if(b==0) throw b; else cout<<" a/b = "<<(float)a/b<<"\n"; } catch(int) { cout<<" Caught an exception as first throwing \n"; throw; } } int main() { int a,b; cout<<" Enter the value of a & b : "; cin>>a>>b; try { division(a,b); } catch(int) { cout<<" Caught an exception as rethrowing \n"; } return 0; }
OUTPUT
Enter the value of a & b : 200 0
- (a) a function to read two double type numbers from keyboard.
- (b) a function to calculate the division of these two numbers.
- (c) a try block to throw an exception when a wrong type of data is keyed in.
- (d) A try block to detect and throw an exception if the condition “divide by zero” occurs.
- (e) Appropriate catch block to handle the exception thrown.
#include<iostream> using namespace std; class santo { double a; double b; public: void input(double x,double y){a=x;b=y;} void division(); }; void santo::division() { try { if(b==0) throw b; else cout<<" a/b = "<<a/b<<"\n"; } catch(int) { cout<<" an exception is caught \n"; } } int main() { double d; int m; santo hasibul; double m1,n1; cout<<"Enter two number : "; cin>>m>>n1; try { if(sizeof(d)!=sizeof(m) || sizeof(d)!=sizeof(n1)) throw n1; else { hasibul.input(m,n1); hasibul.division(); } } catch(double) { cout<<" Caught an exception \n "; } return 0; }
OUTPUT
Enter two number : 150 0
Write a main program that calls a deeply nested function containing an exception. Incorporate necessary exception handling mechanism.
#include<iostream> using namespace std; long int square(int i) { return i*i; } long int sum(int n) { long int s; s=0; for(int i=1;i<=n;i++) { s+=square(i); } return s; } void display(int m) { try { if(m<0) throw m; else cout<<sum(m)<<"\n"; } catch(int n) { cout<<" Caught an exception \n "; } } int main() { int n; cout<<" Enter a positive number "; cin>>n; display(n); return 0; }
OUTPUT
Enter a positive number -23
Next Previous