Skip to main content

Exception Handling

/*
Problem Statement:
Create a class named Television that has data members to hold the model number and the screen size
in inches,and the price.Member functions include overloaded insertion and extraction operators.
If more than four digits are entered for the model,if the screen size is smaller than 12 or
greater than 70 inches, or if the price is negative or over $5000 then throw an integer.
Write a main() function that instantiates a television object,allows user to enter data and
displays the data members.If an exception is caught ,replace all the data member values with zero
values.
*/


#include
#include


class television
{
int model;
float size;
float price;
public:
television();
friend void operator << (ostream &o,television &t);
friend void operator >> (istream &i,television &t);

};

television::television()
{
model=0;
size=0;
price=0;
}

void operator << (ostream &o,television &t)
{
o<<"\nModel:\t"< o<<"\nSize:\t"< o<<"\nPrice:\t"<}


void operator >> (istream &i,television &t)
{
try
{
cout<<"Enter Model No.:\t";
i>>t.model;
if(t.model>=10000)
throw(1);
cout<<"Enter size:\t";
i>>t.size;
if(t.size<12>17)
throw(1);
cout<<"Enter Price:\t";
i>>t.price;
if(t.price>5000)
throw(1);
}
catch(int i)
{
cout<<"\nInvalid Data";
t.model=0;
t.size=0;
t.price=0;
}
}


void main()
{
television t1;
int ch;
do
{
cout<<"\n\n\tMENU\n";
cout<<"1)Accept Data\n2)Display\n3.Exit\n\n";
cout<<"Enter your choice:\t";
cin>>ch;
switch(ch)
{
case 1:cin>>t1;
break;
case 2:cout< break;
case 3:exit(0);
}
}while(1);

}





Popular posts from this blog

4. Lex and Yacc Program to detect errors in a 'C' Language Program

Lex and Yacc Program to detect errors in a 'C' Language Program   Lex Code : %{ #include"y.tab.h" #include<stdio.h> int LineNo = 1 ; %} identifier [ a - zA - Z ][ _a - zA - Z0 - 9 ]* number [ 0 - 9 ]+|([ 0 - 9 ]*\.[ 0 - 9 ]+) %% main \(\) return MAIN ; if return IF ; else return ELSE ; while return WHILE ; int | char | flaot return TYPE ; { identifier } return VAR ; { number } return NUM ; \> | \< | \<= | \>= | == return RELOP ; [\ t ] ; [\ n ] LineNo ++; . return yytext [ 0 ]; %% Yacc Code : %{ #include<string.h> #include<stdio.h> extern int LineNo ; int errno = 0 ; %} % token NUM VAR RELOP % token MAIN IF ELSE WHILE TYPE % left '-' '+' % left '*' '/' %% PROGRAM : MAIN BLOCK ; BLOCK : '{' CODE '}' ; CODE : BLOCK | STATEMENT CODE | STATEMENT ; STATEMENT : DECST ';' | DECST { printf ( "\nLine number %d...

Selenium + Python + UnexpectedAlertPresentException: Dealing with annoying alerts

Handling  UnexpectedAlertPresentException   Alerts who hates them? I Do!  Who doesn't hate an annoying alert causing your tests / scraping job to fail? I must say they are pretty much on point on the Unexpected part!  Fortunately, there are easy ways to mitigate the issue. 1. Disable alerts completely: driver . execute_script( 'window.alert = function(){};' ); execute this script just before where you anticipate the alert and you're golden. 2. You want to see the alert text but not disturb the execution flow. driver . execute_script( 'window.alert = console.info;' ); Now the alerts have been redirected to the console and you don't have to worry about them. (Unless you have to - then you'd have to monitor the console) 3. You know exactly when it comes and want to accept the alert and move on. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from selenium import webdriver from selenium.webdriver.s...

2. Lex program that detects statement type i.e. Simple or Compound

Lex program that detects statement type i.e. Simple or Compound Note: Only AND | OR | BUT conjunctions are supported. Program: % option noyywrap %{ char test = 's' ; %} %% ( "" [ aA ][ nN ][ dD ] "" )|( "" [ oO ][ rR ] "" )|( "" [ bB ][ uU ][ tT ] "" ) { test = 'c' ;} . {;} \ n return 0 ; %% main () { yylex (); if ( test == 's' ) printf ( "\n Its a simple sentence" ); else if ( test == 'c' ) printf ( "\n This is compound sentence" ); }