One of the most reputable changes in the Visual Basic language is the introduction of structured exception handling in VB.NET. While the latest version of the language still supports the On Error Goto type of error handling, it's not preferred; instead, you should use structured exception handling. VB.NET now supports the Try Catch exception blocks and Try Finally resource protection blocks. Here is more information about both types of structured exception handling blocks, along with code samples. Try ... Catch The Try Catch block allows you to catch and handle errors for which the developer can specify a resolution. The basic format of the block is: Code: Try 'Some code Catch 'Error resolution whenever an error takes place End Catch The protected code appears in the Try section of the code, and the error resolution appears in the Catch section of the code. The Try code always gets executed, but the Catch code only gets executed if an error occurs. Try ... Finally The Try Finally blocks are usually used in order to ensure that allocated resources are being cleaned up. These blocks allow you to catch and handle errors, as well as execute a section of the code regardless of whether there is an error. The basic format of the block is listed below: Code: 'Resource allocation code Try 'Use the resource Finally 'Clean the resource up End Catch The protected code appears in the Try section, and the clean up code appears in the Finally section. The statements in a Finally block are always executed when control leaves a try statement, regardless of whether there is an error in the execution. Note: In real applications, you will often need to combine or nest the Try Catch and Try Finally blocks to design a more flexible error handling routine.