Visual Basic .NET supports two different systems for handling errors: structured and unstructured exception handling. This chapter focuses primarily on the structured approach. Unstructured error handling is a throwback to earlier versions of the language, while the structured approach is far more elegant. Structured exception handling was specifically designed to be a part of the language from the beginning, instead of tacked on as an addendum.
Example 6-1 shows the typical form of a structured exception handler. The Try...End Try block is somewhat misleading because it is not actually a single block; it is composed of several different blocks: a Try block, one or more Catch blocks, and a Finally block. A variable declared in a Try block is not available from a corresponding Catch or Finally block—each has its own scope. The term "structured" reflects the block-like nature of the exception handler; it's structured much like the rest of VB.NET, hence the term.
Try 'Code where error can occur Catch SpecificException [When condition] 'Code to execute when exception is caught Catch NotSoSpecificException [When condition] 'Code to execute when exception is caught Catch GeneralException [When condition] 'Code to execute when exception is caught Finally 'Code to execute before leaving Try block End Try
The Try block contains code in which a possible error can occur. If the unthinkable ...