Error Handling for the User Interface
Objectives
This chapter covers the following Microsoft-specified objectives for the "Creating User Services" section of Exam 70-316, "Developing and Implementing Windows-Based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET":
Implement error handling in the UI.
Create and implement custom error messages
Create and implement custom error handlers.
Raise and handle errors.
When you run a Windows application, it may encounter problems that you thought would not occur. For example, the database server is down, a file is missing, or a user has entered improper values. A good Windows application must recover gracefully from this problem rather than abruptly shut down. This exam objective covers the use of exception handling to create robust and fault-tolerant applications. The Microsoft .NET Framework provides some predefined exception classes to help you catch these exceptional situations in your programs. It allows you to create your own exception handling classes and error messages that are specific to your application.
Validate user input.
Garbage in results in garbage out. The best place to avoid incorrect data in an application is at the sourceright where the data enters. The Windows Forms library provides an ErrorProvider component that can be used to display helpful error messages and error icons if data that is entered is incorrect. This exam objective covers the ErrorProvider component and various other input-validation techniques.
Outline
- Introduction
- Understanding Exceptions
- Handling Exceptions
- The try Block
- The catch Block
- The throw Statement
- The finally Block
- Creating and Using Custom Exceptions
- Managing Unhandled Exceptions
- Validating User Input
- Keystroke-Level Validation
- The KeyPreview Property
- Field-Level Validation
- The Validating Event
- The CausesValidation Property
- The ErrorProvider Component
- Enabling Controls Based on Input
- Other Properties for Validation
- The CharacterCasing Property
- The MaxLength Property
- Keystroke-Level Validation
- Chapter Summary
- Apply Your Knowledge
Study Strategies
Review the "Exception Handling Statements" and the "Best Practices for Exception Handling" sections of the Visual Studio .NET Combined Help Collection. The Visual Studio .NET Combined Help Collection is installed as part of the Visual Studio .NET installation.
Experiment with code that uses the try, catch, and finally blocks. Use these blocks with various combinations and inspect the differences in your code's output.
Know how to create custom exception classes and custom error messages; learn to implement them in a program.
Experiment with the ErrorProvider component, the Validating event, and other validation techniques. Use these tools in various combinations to validate data that is entered in controls.
Introduction
The .NET Framework uses the Windows structured exception handling model. Exception handling is an integral part of the .NET Framework that allows the Common Language Runtime (CLR) and your code to throw exceptions across languages and machines. Visual C# .NET helps you fire and handle these exceptions with the help of try, catch, finally, and throw statements. The Framework Class Library (FCL) provides a huge set of exception classes for dealing with various unforeseen conditions in the normal execution environment. If you feel the need to create custom exception classes to meet the specific requirements of an application, you can do so by deriving from the ApplicationException class.
In every program data must be validated before the program can proceed with further processing and storage of the input data. In this chapter I discuss the various techniques you can use to validate data and maintain the integrity of an application. This isn't just a matter of making sure that your application delivers the proper results; if you don't validate input, your application might represent a serious security hole in your systems.