Исключения как замена для goto
 Обработка исключений в сочетании с определением собственных классов исключений позволяет полностью отказаться от использования GoTo. Например, в главе 3 был приведен пример оправданного применения GoTo для прерывания вложенных циклов, когда ошибка происходит во внутреннем цикле. Программист VB .NET в подобной ситуации просто заключает весь цикл в блок Try-Catch, как показано ниже:
 Sub Main()
 Dim getData As String
 Dim i, j As Integer
 Dim e As System.I0.I0Exception
 Try
For i = 1 To 10
For j = 1 To 100 Console.WriteC'Type the data, hit the Enter key between " & _
"ZZZ to end: ") getData _
Console.ReadLine() If getData = "ZZZ" Then
 e New System.I0.I0Exception("Data entry ended " & _
 "at user request") Throw e Else
' Обработка данных
End If
Next j
Next i
Catch
Console.WriteLinete.Message)
Console. Readline()
End Try
End Sub
 В приведенном выше фрагменте выделенные строки нельзя объединить конструкцией следующего вида:
 Dim e As New System.IO.IOException("Data entry ended at user request")
 Вследствие правил видимости VB .NET объект исключения окажется недоступным в секции Catch.
