This chapter shows what tools will help you avoid bugs, find them early, and squish them when they are found. There are some conditions, however, that appear to the user as an error but are not bugsexceptional and unavoidable circumstances that you can not eliminate. Circumstances such as running out of memory, running out of disk space, or dropping a network connection. Not your fault, but they'll bring your program to its knees just as quickly as dividing by zero. You have to handle these problems.
The traditional approach to managing these problems is to crash, but that is frowned upon these days. Better yet, allow the user to fix the problem and continue. Better still is to fix the problem yourself (assuming you will do no harm) and not make the user aware of the problem.
In any case, these situations are not bugs, but exceptions. Before looking at how to find and eliminate the bugs in your program, let's look at exceptions.
Windows Forms and the .NET Framework
Getting Started
Visual Studio .NET
Events
Windows Forms
Dialog Boxes
Controls: The Base Class
Mouse Interaction
Text and Fonts
Drawing and GDI+
Labels and Buttons
Text Controls
Other Basic Controls
TreeView and ListView
List Controls
Date and Time Controls
Custom Controls
Menus and Bars
ADO.NET
Updating ADO.NET
Exceptions and Debugging
Configuration and Deployment