Exception Handling (C++)
April 24, 2016
Categorised in: C++ Codes, OOMP Codes
/* Create a c++ class named Television that has data members to hold the model no., screen size and price. Member functions include overloaded insertion and extraction operators. If more than 4 digits are entered call the model if screen size is smaller than 12 and greater than 70 inches or if price is negative or over $5000 then provide the . Write a main function that instantiates a television object which allows users to enter data and display data members. If an exception is caught then replace all data members with 0. */ #include<iostream> using namespace std; class Television{ int modelno; double cost; double size; public: Television(){ modelno = 0; cost = 0; size = 0; } friend istream& operator >>(istream&input, Television &t){ int flag = 0; cout<<"Enter Model Number:"<<endl; input>>t.modelno; cout<<"Enter Cost of TV:"<<endl; input>>t.cost; cout<<"Enter size of TV:"<<endl; input>>t.size; try{ if(t.modelno > 999) throw(1); } catch(int i){ if(i){ cout<<"Model Number cannot be less than 999"<<endl; flag = 1; } } try{ if(t.size<12 || t.size>70) throw(2); } catch(int i){ if(i == 2){ cout<<"The screen size cannot be smaller than 12 inches or greater than 70 inches."<<endl; flag = 1; } } try{ if(t.cost<0 || t.cost>5000) throw(3); } catch(int i){ if (i==3){ cout<<"The cost cannot be negative or greater than $5000"<<endl; flag = 1; } } if(flag == 1) { t.modelno = 0; t.cost = 0; t.size = 0; } return(input); } friend ostream& operator <<(ostream&output, Television &t){ output<<"Model Number of TV: "<<t.modelno<<endl; output<<"Cost of TV: "<<t.cost<<endl; output<<"Size of TV: "<<t.size<<endl; return(output); } }; int main(){ Television t; cin>>t; cout<<t; return 0; }
Pratik Kataria is currently learning Springboot and Hibernate.
Technologies known and worked on: C/C++, Java, Python, JavaScript, HTML, CSS, WordPress, Angular, Ionic, MongoDB, SQL and Android.
Softwares known and worked on: Adobe Photoshop, Adobe Illustrator and Adobe After Effects.