Поделиться через


Практическое руководство. Очистка ресурсов при помощи блока Try… Finally в Visual Basic

Обновлен: Ноябрь 2007

Оператор Finally можно использовать внутри блока Try для очистки выделенных ресурсов. Код, содержащийся в блоке Finally, выполняется после кода обработки исключений, но до возврата управления в вызывающую процедуру. Код в блоке Finally выполняется, даже если в коде возникнет исключение, или даже если явно добавлен оператор Exit Function (или Exit Sub) в блоке Catch.

Если не требуется перехватывать определенные исключения, оператор Using действует аналогично блоку Try…Finally и гарантирует освобождение ресурсов независимо от способа выхода из блока. Это справедливо даже в случае необработанного исключения. Дополнительные сведения см. в разделе Оператор Using (Visual Basic).

Чтобы очистить ресурсы с помощью оператора Finally

  • Поместите код, который должен выполняться независимо от исключений, внутри блока Finally. Следующий код создает объект StreamReader и использует его для чтения из файла.

    Dim reader As New System.IO.StreamReader("C:\testfile")
    Try
        reader.ReadToEnd()
    Catch ex As System.IO.IOException
        MsgBox("Could not read file")
    Finally
        'This command is executed whether or not the file can be read
        reader.Close()
    End Try
    

См. также

Задачи

Практическое руководство. Проверка кода с помощью блока Try… Catch в Visual Basic

Практическое руководство. Проверка наличия у исключения вложенного исключения

Практическое руководство. Удаление системного ресурса

Основные понятия

Обработка исключений (для пользователей Visual Basic 6.0)

Ссылки

Оператор Using (Visual Basic)

Другие ресурсы

Задачи обработки исключений