Иллюстрированный самоучитель по VB.NET

       

Исключения как замена для 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.



Содержание раздела