Exception Handling in VB.Net

This is an article on Exception Handling in VB.Net in Visual Basic [VB].

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: VB.NET

Try'Some code

Catch'Error resolution whenever an error takes place

EndCatch

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: VB.NET

'Resource allocation code

Try'Use the resourceFinally'Clean the resource up

EndCatch

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.