week 7 debugging and error handling n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Week 7 : Debugging and Error Handling PowerPoint Presentation
Download Presentation
Week 7 : Debugging and Error Handling

Loading in 2 Seconds...

play fullscreen
1 / 51

Week 7 : Debugging and Error Handling - PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Week 7 : Debugging and Error Handling' - aerona


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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 handling1

Week 7: Debugging and Error Handling

Debugging methods available in the ID

debugging in vs and vce
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

debugging in vs and vce1
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

debug menu and toolbar
Debug Menu and Toolbar

Breakpoints

Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 5

breakpoints
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 6

debugging in break mode
Debugging in Break Mode

Breakpoints

Windows Programming 1 Chapter 7: Debugging and Error Handling Slide 7

monitoring variable content
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

viewing current values during program execution
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 9

monitoring variable content1
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

locals window
Locals window

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

the watch window
The Watch window

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

immediate and commandwindows
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

immediate and commandwindows1
Immediate and CommandWindows

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

week 7 debugging and error handling2

Week 7: Debugging and Error Handling

Error-handling techniques available in C#

understanding exceptions
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.
understanding exceptions1
UNDERSTANDING EXCEPTIONS
  • The FCL provides two categories of exceptions
    • ApplicationException Represents exceptions thrown by the applications
    • SystemExceptionRepresents exceptions thrown by the CLR
try block general form
Try Block - General Form
  • The tryBlock

Try

{

statements that may cause error

}

catch [ExceptionTypeVariableName ]

{

statements for action when an exception occurs

}

handling exceptions
HANDLING EXCEPTIONS
  • The catchBlock

FormatException

DivideByZeroException

ArithmeticException

OverflowException

handling exceptions3
HANDLING EXCEPTIONS
  • The throwStatement
handling exceptions4
HANDLING EXCEPTIONS
  • The finallyBlock: contains code that always executes, whether or not any exception occurs.
validating user input
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.)
the validating event
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.
validating user input1
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
validating user input exam
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");
  • }
the causesvalidation property
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
the errorprovider component
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
the validating event and sticky form
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:
the validating event and sticky form1
The Validating Event and Sticky Form
  • Attach the following event handling code to the Validating events of both the txtMilecontrols
math class methods
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…
method definitions
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
method definitions1
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
  • }
user defined method maximum
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

user defined method maximum1
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 );

}

argument promotion
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
passing arguments call by value vs call by reference
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
reference and value parameters
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

random number generation
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
class random example
Class Random_ Example

Random rand = newRandom();

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]