Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Week 7: Debugging and Error Handling Debugging methods available in the ID Error-handling techniques available in C#"— Presentation transcript:

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

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

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 Debug Menu and Toolbar Breakpoints Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 5

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

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

8 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 8

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

10 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 10

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

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

13 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 13

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

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

16 Slide 16 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.

17 Slide 17 STEP BY STEP 3_1

18 Slide 18 STEP BY STEP 3_1

19 Slide 19 UNDERSTANDING EXCEPTIONS The FCL provides two categories of exceptions ApplicationException Represents exceptions thrown by the applications SystemException Represents exceptions thrown by the CLR

20 Slide 20 Try Block - General Form The try Block Try { statements that may cause error } catch [ExceptionType VariableName ] { statements for action when an exception occurs }

21 Slide 21 HANDLING EXCEPTIONS The catch Block DivideByZeroException ArithmeticException OverflowException FormatException

22 Slide 22 HANDLING EXCEPTIONS

23 Slide 23 HANDLING EXCEPTIONS

24 Slide 24 HANDLING EXCEPTIONS The throw Statement

25 Slide 25 The throw Statement

26 Slide 26 The throw Statement

27 Slide 27 HANDLING EXCEPTIONS The finally Block: contains code that always executes, whether or not any exception occurs.

28 Slide 28 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.)

29 Slide 29 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.

30 Slide 30 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

31 Slide 31 VALIDATING USER INPUT EXAM private void textBoxAge_KeyPress(object sender, KeyPressEventArgs e) { if ((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"); }

32 Slide 32 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

33 Slide 33 9:06:37 AM The ErrorProvider Component The ErrorProvider component 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

34 Slide 34 9:06:37 AM The ErrorProvider Component

35 Slide 35 Using the ErrorProvider Component and Other Validation Techniques

36 Slide 36 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:

37 Slide 37 The Validating Event and Sticky Form Attach the following event handling code to the Validating events of both the txt Mile controls

38 Methods

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

40 Slide 40 Math Class Methods

41 Slide 41 Math Class Methods

42 Slide 42 9:06:37 AM Method Definitions Writing a custom method Header ReturnType Properties 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

43 Slide 43 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 }

44 Slide 44 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

45 Slide 45 9:06:37 AM 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 ); }

46 Slide 46 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

47 Slide 47 Argument Promotion

48 Slide 48 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 ref keyword specifies by reference The out keyword means a called method will initialize it

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

50 Slide 50 Random Number Generation Class Random Within namespace System randomObject.Next () Returns a number from 0 to Int32.MaxValue  Int32.MaxValue = 2,147,483,647 randomObject.Next ( x ) Returns a value from 0 up to but not including x randomObject.Next ( x, y ) Returns a number between x and up to but not including y

51 Slide 51 Class Random_ Example Random rand = new Random(); int value; value = rand.Next(); // phát sinh 1 s ố trong [0; 2,147,483,647] value = rand.Next( 6 ); // phát sinh 1 số trong [0; 5] value = rand.Next( 1, 7 ); // phát sinh 1 số trong [1,6]


Download ppt "Week 7: Debugging and Error Handling Debugging methods available in the ID Error-handling techniques available in C#"

Similar presentations


Ads by Google