Upload
prudence-williamson
View
241
Download
1
Tags:
Embed Size (px)
Citation preview
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