CIS162AD – C# Formatting and Exceptions 03_exceptions.ppt Overview of Topics Hardware Information Processing Cycle Text Boxes - for input and output Numeric input and output Handling Exceptions IPO Charts CIS162AD 2 A Computer is an electronic device consisting of hardware. Input Devices – Keyboard – Mouse – Scanner Storage Devices – Hard drive – Diskette – Zip Disk Output Devices – Console (Display) – Printer Internally – Central Processing Unit (CPU) – Memory (RAM) CIS162AD 3 Hardware Model CPU Input Devices Memory (RAM) The hardware configuration is used to support the Information Processing Cycle. CIS162AD Output Devices Storage Devices 4 Information Processing Cycle Input Raw Data Process (Application) Output from one process can serve as input to another process. CIS162AD Output Information Storage 5 What do we need to operate the hardware and transform data into information? Software! CIS162AD 6 Software: Two Major Categories Operating System (OS) – Software that allocates and monitors computer resources including memory allocation, storage, and security. Application Software – Software used to process raw data into information. – We will be developing applications using C#. CIS162AD 7 Input/Output Recall the Information Processing Cycle Input Process Output We need a user interface to get their Input and to display processing results as Output. We use variables to store the values entered by the user and to store the results of the processing. In C#, textboxes and labels are the most common control objects used to facilitate I/O. CIS162AD 8 Input/Output in C# Contents of a textbox is always a String. Use the Text property to get or put values. Numbers are also entered as Strings through textboxes. The String must be converted to a number before being assigned to a numeric variable, and before being used in a arithmetic expression. Each datatype has a Parse method for conversion. To display a number in a label or textbox it must be converted from a number to a String. Use built-in function ToString. CIS162AD 9 Example All Together int intQty; decimal decPrice; decimal decSubtotal; //input intQty = int.Parse(txtQuantity.Text); decPrice = decimal.Parse(txtPrice.Text); //process decSubtotal = intQty * decPrice; //output lblSubtotal.Text = decSubtotal.ToString(“C”); CIS162AD 10 Handling Exceptions When numeric data is requested from the user things can go wrong. The conversion method (Parse) will fail if the user enters nonnumeric data or leaves the textbox blank. Each of these situations will cause a run-time error. Each of these situations throws an exception before the run-time error is display. We can catch the exception with a Try/Catch Block. Catching the exception allows us to handle the error gracefully. CIS162AD 11 Try / Catch Blocks Enclose any statements that might cause an error in a try/catch block. try { intQty = int.Parse(txtQuantity.Text) } catch (Exception exc) { MessageBox.Show(“Data Entry Error.”) } finally { txtQuantity.Focus( ) } Use catch section to handle the error. Create a local object (exc) of type Exception for processing. Use finally for statements that should be executed whether or not an exception occurred. finally section is optional. CIS162AD 12 Exception Classes Exception classes can be used to catch specific errors. – InvalidCastException – failure of conversion function. – ArithmeticException – a calculation error – OutOfMemoryException – not enough memory – Exception – use to handle any exceptions not coded. – Use Message property to display error message when an unexpected error is generated. try intQty = int.Parse(txtQuanityty.Text) catch (InvalidCastException exc) MessageBox.Show(“Data Entry Error.”) catch (Exception exc) MessageBox.Show(“Unexpected Error: ” & exc.Message) finally CIS162AD 13 MessageBox Object A message can be displayed to users in a message box, which is a special type of window. MessageBox.Show(text, titlebar, buttons, icon) – Text is the message displayed to the user. – Titlebar is used to provide a title for the window. – Buttons is used to specify the buttons that should be displayed (OK, Cancel, Retry, Yes, No, etc.) – Icon is used to specify what icon to display in front of the message (Error, Hand, Information, None, Warning, etc.) Text is required, but the other parameters are optional. CIS162AD 14 Method Overloading Method Overloading occurs when methods have the same name but different number or type of parameters. The Show method for MessageBox is defined many different ways. The same method name can be used because the argument list for each version makes it unique. This is referred to as the method’s signature. Every method must have a unique signature. This is a feature of object-oriented programming. CIS162AD 15 IPO Charts Input, Processing, and Output (IPO) When designing a program, we usually begin with the end in mind (output). From the output we can determine the inputs that will be required to complete the processing. CIS162AD 16 IPO Chart for CS3 Input Processing Output Quantity Price Extended Price = Qty * Price Extended Price Tax Shipping Total Due Tax = Extended Price * Tax Rate Constants: Tax Rate Shipping Rate Total due = Extended Price + Tax + Shipping Rate Etc… Etc… CIS162AD 17 CS3 Sales Calculator Code //Input intQuantity = int.Parse(txtQuantity.Text); decPrice = decimal.Parse (txtPrice.Text); //Process - calculate values decExtendedPrice = intQuantity * decPrice; decSalesTax = decExtendedPrice * cdecTAX_RATE; decTotalDue = decExtendedPrice + decSalesTax + cdecSHIPPING_RATE; //Output lblExtendedPrice.Text = decExtendedPrice.ToString("C"); lblSalesTax.Text = decSalesTax.ToString("C"); lblShipping.Text = cdecSHIPPING_RATE.ToString("C"); lblTotalDuel.Text = decTotalDue.ToString("C"); CIS162AD 18 Using IPO Charts Consider using IPO Charts when planning the logic for your assignments. It is much easier to develop a program if you have a plan. It will save you a lot of time. It is very difficult to design a program on the fly in front of the keyboard. Even if you find the first couple assignments “easy”, you should spend some time designing the solution so that you will have experience when we get to the more complicated assignments. CIS162AD 19 Summary Numeric Input and Output Exception Handling IPO Charts CIS162AD 20