Unstructured Exception Handling in VB.net

By: Steven Holzner Viewed: 153207 times    

The old error-handling mechanism in VB6 and before is now called unstructured exception handling, and it revolves around the On Error Goto statement. You use this statement to tell VB .NET where to transfer control to in case there's been an exception, as in this case, where I'm telling Visual Basic to jump to the label "Handler" if there's been an exception. You create labels in your code with the label name followed by a colon, and the exception-handling code will follow that label (note that I've added an Exit Sub statement to make sure the code in the exception handler is not executed by mistake as part of normal program execution):

Module Module1
    Sub Main()
        On Error Goto Handler
        
        Exit Sub
Handler:
        
    End Sub
End Module

Now I can execute some code that may cause an exception, as here, where the code performs a division by zero, which causes an exception. When the exception occurs, control will jump to the exception handler, where I'll display a message and then use the Resume Next statement to transfer control back to the statement immediately after the statement that caused the exception:

Module Module1
    Sub Main()
        Dim int1 = 0, int2 = 1, int3 As Integer
        On Error Goto Handler
        int3 = int2 / int1
        System.Console.WriteLine("The answer is {0}", int3)
Handler:
        System.Console.WriteLine("Divide by zero error")
        Resume Next
    End Sub
End Module

When you run this code, you see this message:

Divide by zero error

Most Viewed Articles (in VB.net )

Latest Articles (in VB.net)

Comment on this tutorial