6.1. The Basics of Exception Handling

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.

6.1.1. Try Block

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.

Example 6-1. Try...Catch...Finally
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 ...

Get Object-Oriented Programming with Visual Basic .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.