1 / 53

Week 7 : Debugging and Error Handling

Week 7 : Debugging and Error Handling. Debugging methods available in the ID Error-handling techniques available in C#. Week 7: Debugging and Error Handling. Debugging methods available in the ID. DEBUGGING IN VS AND VCE.

holmes-vang
Download Presentation

Week 7 : Debugging and Error Handling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Week 7: Debugging and Error Handling Debugging methods available in the ID Error-handling techniques available in C#

  2. Week 7: Debugging and Error Handling Debugging methods available in the ID

  3. DEBUGGING IN VS AND VCE Both VS and VCE(express) allow you to build applications in two configurations: Debug (the default) and Release. Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 3

  4. DEBUGGING IN VS AND VCE • In debug configuration and execute it in debug mode, more is going on than the execution of your code. Debug builds maintain symbolic information about your application, so that the IDE knows exactly what is happening as each line of code is executed • In release configuration, application code is optimized. However, release builds also run faster; and when you have finished developing an application, you will typically supply users with release builds because they won’t require the symbolic information thatdebug builds include Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 4

  5. Outputting Debugging Information • First, an additional using directive appears at the beginning of the code: • using System.Diagnostics; • Then • Debug.WriteLine() • Trace.WriteLine() • System.Diagnostics.Debug.WriteLine("Bananas"); Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 5

  6. Debug Menu and Toolbar Breakpoints Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 6

  7. Breakpoints Toggle Breakpoints On/Off by clicking in Editor's gray left margin indicator Breakpoints Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 7

  8. Debugging in Break Mode Breakpoints Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 8

  9. Monitoring Variable Content Monitoring variable content is just one example of how VS and VCE help you a great deal by simplifying things. The easiest way to check the value of a variable is to hover the mouse over its name in the source code while in break mode. A yellow tooltip showing information about the variable appears, including the variable’s current value. Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 9

  10. Viewing Current Values During Program Execution Place mouse pointer over variable or property to view current value Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 10

  11. Monitoring Variable Content Autos (VS only): Variables in use in the current and previous statements (Ctrl+D, A) Locals: All variables in scope (Ctrl+D, L) Watch N: Customizable variable and expression display (where N is 1 to 4, found on Debug WindowsWatch) Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 11

  12. Locals window Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 12

  13. The Watch window Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 13

  14. Immediate and CommandWindows The Command (VS only) and Immediate windows (found on the DebugWindows menu) enable you to execute commands while an application is running. The Command window enables you to perform VS operations manually (such as menu and toolbar operations). The Immediate window enables youto execute additional code besides the source code lines being executed, and to evaluate expressions. Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 14

  15. Immediate and CommandWindows Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 15

  16. Week 7: Debugging and Error Handling Error-handling techniques available in C#

  17. UNDERSTANDING EXCEPTIONS • An exception occurs when a program encounters any unexpected problems. • Your program should be able to handle these exceptional situations and, if possible, gracefully recover from them. This is called exception handling.

  18. STEP BY STEP 3_1

  19. STEP BY STEP 3_1

  20. UNDERSTANDING EXCEPTIONS • The FCL provides two categories of exceptions • ApplicationException Represents exceptions thrown by the applications • SystemExceptionRepresents exceptions thrown by the CLR

  21. Try Block - General Form • The tryBlock Try { statements that may cause error } catch [ExceptionTypeVariableName ] { statements for action when an exception occurs }

  22. HANDLING EXCEPTIONS • The catchBlock FormatException DivideByZeroException ArithmeticException OverflowException

  23. HANDLING EXCEPTIONS

  24. HANDLING EXCEPTIONS

  25. HANDLING EXCEPTIONS • The throwStatement

  26. The throwStatement

  27. The throwStatement

  28. HANDLING EXCEPTIONS • The finallyBlock: contains code that always executes, whether or not any exception occurs.

  29. VALIDATING USER INPUT • Field-Level Validation • 1. Enter (Occurs when a control is entered.) • 2. GotFocus (Occurs when a control receives focus.) • 3. Leave (Occurs when focus leaves a control.) • 4. Validating (Occurs when a control is validating.) • 5. Validated (Occurs when a control is finished validating.) • 6. LostFocus (Occurs when a control looses focus.)

  30. The Validating Event • Inside the Validating event, you can write code to do the following: • Programmatically correct any errors or omissions made by the user. • Show error messages and alerts to the user so that the user can fix the problem • Use the Focus() method of the control to transfer the focus back to the field. • Set the Cancel property of CancelEventArgs to true. This cancels the Validating event, leaving the focus in the control.

  31. VALIDATING USER INPUT • 1. KeyDown • 2. KeyPress • 3. KeyUp • The KeyPress event happens after the KeyDown event but before the KeyUp event • KeyPress event match keys include any alphabetic and numeric characters (alphanumeric a–z, A–Z, and 0–9), not raise this event include Ctrl, Alt, and the function keys

  32. VALIDATING USER INPUT EXAM • private void textBoxAge_KeyPress(object sender, KeyPressEventArgs e) • { • if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8) • e.Handled = true; • } • private void textBox1_KeyUp(object sender, • System.Windows.Forms.KeyEventArgs e) • { • if (e.Alt == true) • MessageBox.Show("The ALT key is still down"); • }

  33. The CausesValidation Property • The default value of the CausesValidation property for a control is true for all controls • When you want a control to respond, regardless of the validation status of other controls, you should set the CausesValidation property of that control to false

  34. The ErrorProvider Component • The ErrorProvidercomponent can set a small icon next to a field when it contains an error • When the user moves the mouse pointer over the icon, an error message pops up as a ToolTip

  35. The ErrorProvider Component

  36. Using the ErrorProvider Component andOther Validation Techniques

  37. The Validating Event and Sticky Form • The CausesValidation property of the btnExit control to false. • Declare the following variable outside a method block in the class: private bool closingFlag = false; • Add the following code to the Click event handler of the Exit button:

  38. The Validating Event and Sticky Form • Attach the following event handling code to the Validating events of both the txtMilecontrols

  39. Methods

  40. Math Class Methods • The Mathclass • Allows the user to perform common math calculations • Using methods • ClassName.MethodName( argument1, arument2, … ) • Constants • Math.PI = 3.1415926535… • Math.E = 2.7182818285…

  41. Math Class Methods

  42. Math Class Methods

  43. Method Definitions • Writing a custom method • Header ReturnTypeProperties Name( Param1, Param2, …) • Body • Contains the code of what the method does • Contains the return value if necessary • For uses call elsewhere in program • Pass parameters if needed • All methods must be defined inside of a class

  44. Method Definitions • public void MethodName ( ) • { • // Contains the code of what the method does • } • public ReturnType methodName(Param1, Param2, … ) • { • //Contains the code of what the method does • //Contains the return value • }

  45. User-defined method Maximum public double Maximum( double x, double y, double z ) { double maximumValue = x; if ( y > maximumValue ) maximumValue = y; if ( z > maximumValue ) maximumValue = z; return maximumValue; } // end method Maximum

  46. User-defined method Maximum public void DetermineMaximum() {Console.WriteLine( "Enter three floating-point values,\n" + " pressing 'Enter' after each one: " ); double number1 = Convert.ToDouble( Console.ReadLine() ); double number2 = Convert.ToDouble( Console.ReadLine() ); double number3 = Convert.ToDouble( Console.ReadLine() ); double result = Maximum( number1, number2, number3 ); Console.WriteLine( "Maximum is: " + result ); }

  47. Argument Promotion • Implicit Conversion • Object is converted to a needed type implicitly • Only done if complier knows no data will be lost • Explicit Conversion • Object is manually converted • Required if there could be a loss of data • Widening • Make an object that of a derived class and more complex • Narrowing • Make an object that of a base class and cause some data loss

  48. Argument Promotion

  49. Passing Arguments: Call-By-Value vs. Call-By-Reference • Passing by value • Send a method a copy of the object • When returned are always returned by value • Set by value by default • Passing by reference • Send a method the actual reference point • Causes the variable to be changed throughout the program • When returned are always returned by reference • The refkeyword specifies by reference • The outkeyword means a called method will initialize it

  50. Reference and value parameters void Square( int x ) { x = x * x; } int z=5; Square ( z ); Value of z after Square: 5 void SquareRef( ref int x ) { x = x * x; } int z=5; SquareRef (ref z ); Value of z after SquareRef: 25 void SquareOut( out int x ) { x=5; x = x * x; } int z; SquareOut (out z ); Value of z after SquareOut: 25

More Related