microsoft vb 2005: reloaded, advanced chapter 5 input validation, error handling, and exception...

Post on 17-Dec-2015

230 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microsoft VB 2005: Reloaded, Advanced

Chapter 5Input Validation, Error Handling, and

Exception Handling

Microsoft VB 2005: Reloaded, Advanced 2

Objectives

• Perform input validation using a variety of techniques

• Describe the differences between runtime errors and exceptions

• Resolve runtime errors in a simple application

• Interpret error messages created by the Common Language Runtime

Microsoft VB 2005: Reloaded, Advanced 3

Objectives (continued)

• Perform classic error handling in an application

• Discuss the inheritance hierarchy of Visual Basic exception classes

• Perform structured error handling in an application

• Create programmer-defined exceptions

Microsoft VB 2005: Reloaded, Advanced 4

Input Validation

• Input validation– Validating user data before it is used by the program

• Techniques– Proper interface design– Trapping keystrokes– The Validating event handler– The MaskedTextBox control– The ErrorProvider component

Microsoft VB 2005: Reloaded, Advanced 5

Error Prevention Through Proper Interface Design

Microsoft VB 2005: Reloaded, Advanced 6

Input Validation by Trapping Keystrokes

• In some cases it is advisable to check each individual keystroke– To determine immediately if the character is valid

• And refrain from displaying it

• .NET Framework KeyPress event– Can be used to check each keystroke made in a

specific control– Properties: Handled and KeyChar

• Char class has several methods to check for keystroke acceptability– IsDigit, IsLetter, and IsWhiteSpace

Microsoft VB 2005: Reloaded, Advanced 7

Input Validation by Trapping Keystrokes (continued)

Microsoft VB 2005: Reloaded, Advanced 8

Input Validation with the Validating Event Handler

• Validate the entire contents of a text box when the Leave event occurs– Event fires when the user Tabs away from the control

or clicks on another control– A Validating event also fires if the CausesValidation property of the control is True

• Validating event enables you to write an event procedure to validate the entire contents of a control

Microsoft VB 2005: Reloaded, Advanced 9

Input Validation with the Validating Event Handler (continued)

Microsoft VB 2005: Reloaded, Advanced 10

Using the MaskedTextBox Control for Input Validation

• MaskedTextBox control– An enhanced TextBox that uses the Mask property

to specify valid user input

• You can create a character mask that specifies:– Required and optional characters– Positions of such characters– Types of required characters – Values and positions of literal characters

Microsoft VB 2005: Reloaded, Advanced 11

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 12

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 13

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 14

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 15

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 16

Using the MaskedTextBox Control for Input Validation (continued)

Microsoft VB 2005: Reloaded, Advanced 17

Using the ErrorProvider Component for Input Validation

• ErrorProvider component– Notifies the user that a data entry error has occurred

in a particular control• Without using a MessageBox

– Displays a default error icon next to the control where the error occurred

– When the user positions the mouse over the error icon, a ToolTip error message displays

• Informing the user of the problem

Microsoft VB 2005: Reloaded, Advanced 18

Using the ErrorProvider Component for Input Validation

(continued)

Microsoft VB 2005: Reloaded, Advanced 19

Using the ErrorProvider Component for Input Validation

(continued)

Microsoft VB 2005: Reloaded, Advanced 20

Runtime Errors and Exceptions

• Objectives– Learn about kinds of errors that can occur within

programs• And different ways that you can deal with such errors

Microsoft VB 2005: Reloaded, Advanced 21

Types of Errors

• Compile-time errors– Errors that occur while the program is being compiled– Usually due to syntax violation

• Runtime errors– Errors generated by the program during execution

• Logic errors– Errors made by the programmer in designing or

implementing the logic of a program

Microsoft VB 2005: Reloaded, Advanced 22

Types of Errors (continued)

• Classic error handling– Refers to the way Visual Basic internally handles an

error object called Err– Error object is automatically generated by a Visual

Basic program when a runtime error occurs

• Exception– Any exceptional, unusual, or abnormal condition that

occurs during program execution– Exception objects are created by your application

– All Visual Basic runtime errors are exceptions• Not all exceptions are Visual Basic runtime errors

Microsoft VB 2005: Reloaded, Advanced 23

Types of Errors (continued)

• Structured exception handling– Process for managing Exception objects that uses

special program elements– Usually preferred over classic error handling

Microsoft VB 2005: Reloaded, Advanced 24

Types of Errors (continued)

Microsoft VB 2005: Reloaded, Advanced 25

Runtime Errors in a Simple Application

• Division application– Allows the user to divide one number (the dividend)

by another (the divisor), resulting in the answer (the quotient)

Microsoft VB 2005: Reloaded, Advanced 26

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 27

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 28

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 29

Runtime Errors in a Simple Application (continued)

• Types of exceptions– FormatException

• An input string was not in the correct format

– DivideByZeroException

Microsoft VB 2005: Reloaded, Advanced 30

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 31

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 32

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 33

Runtime Errors in a Simple Application (continued)

Microsoft VB 2005: Reloaded, Advanced 34

Classic Error Handling in Visual Basic

• Accomplished using the On Error statement– Of which there are several variations

Microsoft VB 2005: Reloaded, Advanced 35

On Error GoTo <line>

• On Error GoTo <line> statement– Used to place Visual Basic in error-handling mode

• A state of a Visual Basic application that enables the features of classic error handling

– Then jumps to an indicated <line> in the program, which begins the error-handling code

• Known as the error handler

• Will usually display a message to the user and exit the Sub procedure

Microsoft VB 2005: Reloaded, Advanced 36

On Error GoTo <line> (continued)

Microsoft VB 2005: Reloaded, Advanced 37

Alternatives to Exit Sub

• Exit Sub– Exits error-handling mode and immediately leaves the Sub procedure

• Exit Function– Performs error handling within a Function

• Keyword Resume– Repeats execution of the same statement that caused

the error• Resume Next

– Resumes execution with the statement after the one that caused the error

Microsoft VB 2005: Reloaded, Advanced 38

On Error Resume Next

• Allows a program to simply skip a statement that causes an error– And resume normal flow with the next statement

• Errors can then be handled using traditional If...Then logic

Microsoft VB 2005: Reloaded, Advanced 39

Disadvantages of Classic Error Handling

• Classic error handling can be challenging

• It is very difficult to understand how a program handles errors just by looking at the program code

• You cannot nest error-handling code

Microsoft VB 2005: Reloaded, Advanced 40

Exception Classes in the .NET Framework

• Structured exception handling is the preferred way of dealing with runtime errors and other exceptions in a Visual Basic application

Microsoft VB 2005: Reloaded, Advanced 41

Runtime Errors and Exceptions

• A runtime error creates an object called Err• Every runtime error in a Visual Basic program also

generates a specific kind of exception object

• Exception-handling code– Handles special exceptions objects– Can provide important custom error messages to the

user and keep the application running

• Visual Basic’s runtime environment can automatically handle exceptions for you– By displaying standard error messages and

subsequently shutting down the program

Microsoft VB 2005: Reloaded, Advanced 42

Runtime Errors and Exceptions (continued)

Microsoft VB 2005: Reloaded, Advanced 43

The Inheritance Hierarchy of Exception Classes

• Hierarchy begins with the Object class

• Method-call stack– Sequence of method calls within an application that

leads to the creation of an exception object

Microsoft VB 2005: Reloaded, Advanced 44

The Inheritance Hierarchy of Exception Classes (continued)

Microsoft VB 2005: Reloaded, Advanced 45

Structured Exception Handling in Visual Basic .NET

• Objective– Learn how to handle exception objects in a precise

way using structured exception handling• Applications are more robust and fault tolerant

Microsoft VB 2005: Reloaded, Advanced 46

The Try…Catch…Finally Statement

Microsoft VB 2005: Reloaded, Advanced 47

The Try…Catch…Finally Statement (continued)

Microsoft VB 2005: Reloaded, Advanced 48

Definitions of Try, Catch, and Finally Blocks

• Try block– Section of code that could possibly throw (create or

generate) an exception object– Including code that should not execute if an exception is

thrown

• Exception thrower or exception propagator– The method that contains the Try block

• Catch block– Code in a Try...Catch...Finally statement

designed to catch (handle or process) an exception object

Microsoft VB 2005: Reloaded, Advanced 49

Definitions of Try, Catch, and Finally Blocks (continued)

• Exception catcher or exception handler– The method that contains a Catch block

• Finally block– Contains program code that performs final actions after

a Try block or Catch block fully executes– Finally block will always execute whether or not an

exception is thrown– Often used to release any resources created in the Try

block

Microsoft VB 2005: Reloaded, Advanced 50

How Try, Catch, and Finally Blocks Work

Microsoft VB 2005: Reloaded, Advanced 51

A Simple Try…Catch…Finally Example

Microsoft VB 2005: Reloaded, Advanced 52

Multiple Catch Blocks

Microsoft VB 2005: Reloaded, Advanced 53

Multiple Catch Blocks (continued)

Microsoft VB 2005: Reloaded, Advanced 54

More About the Finally Block

• Finally block– It is always executed, regardless of what happens in the Try or Catch blocks

– Block is well suited for closing any application resources that had been previously opened

• Or performing any other kind of program cleanup tasks

Microsoft VB 2005: Reloaded, Advanced 55

Programmer-Defined Exceptions

• Programmer-defined exceptions– Exceptions not associated with standard Visual Basic

runtime errors– Allow your application to handle many additional

unusual situations

Microsoft VB 2005: Reloaded, Advanced 56

Creating a Programmer-Defined Exception Class

• Microsoft recommendations for creating your own exception classes– Give a programmer-defined exception class a

meaningful name that ends with Exception– Class should derive from ApplicationException

• To provide the application with the required exception-handling functionality

Microsoft VB 2005: Reloaded, Advanced 57

Creating a Programmer-Defined Exception Class (continued)

Microsoft VB 2005: Reloaded, Advanced 58

Throwing Programmer-Defined Exceptions

• Use keyword Throw• Example

– Throw New IncorrectAgeException(“Negative age not allowed”)

Microsoft VB 2005: Reloaded, Advanced 59

Throwing Programmer-Defined Exceptions (continued)

Microsoft VB 2005: Reloaded, Advanced 60

Using the InnerException Property

• Display additional information about a particular exception object

Microsoft VB 2005: Reloaded, Advanced 61

Using the InnerException Property (continued)

Microsoft VB 2005: Reloaded, Advanced 62

Summary

• Minimize errors through the proper design of the user interface– .NET Framework KeyPress event– MaskedTextBox control– ErrorProvider component

• Types of errors– Compile-time errors– Runtime errors– Logic errors

• In Visual Basic, a runtime error creates an object called Err, which has certain properties

Microsoft VB 2005: Reloaded, Advanced 63

Summary (continued)

• An exception is any kind of unusual or infrequent problem that occurs during program execution, including runtime errors

• Structured exception handling manages program problems using exception objects

• Classic error handling is the Visual Basic process for managing error objects generated by the program when standard runtime errors occur

• Visual Basic structured exception handling uses the Try...Catch...Finally statement

Microsoft VB 2005: Reloaded, Advanced 64

Summary (continued)

• The inheritance hierarchy for .NET Framework exception classes begins with the Object class– And continues at the next lower level with the Exception class

• You can define your own custom exception classes, called programmer-defined exceptions

top related