Создание исключения в Catch для Visual Basic

Мой вопрос касается использования «Создать новое исключение» в блоке Catch.

Я видел, как MessageBox («сообщение») используется в некоторых блоках Catch, а также в качестве альтернативы Throw New Exception («сообщение»).

Есть ли разница? Зачем мне использовать Throw New Exception и вместо этого использовать окно сообщения.


person user3511057    schedule 12.02.2015    source источник


Ответы (1)


MessageBox показывает окно сообщения. Если кто-то пишет код таким образом, это означает, что было перехвачено исключение, и пользователи должны быть проинформированы.

Вбрасывание блока catch обычно используется для переименования исключений. Например, вы читаете файл. Чтение файла может вызвать ряд исключений от «файл уже открыт» до «устройство не готово». Но ваш код хочет сообщить внешнему коду, что либо он «не может открыть файл», либо «файл имеет неправильный формат». Внешний код не слишком заботится о причине, по которой файл не может быть открыт.

Таким образом, исключения при открытии файла перехватываются, а затем вверх выбрасывается одно исключение «не удалось открыть файл», так что внешнему коду не нужно обрабатывать все эти исключения.

Sub OuterCode()
    Try
        Dim s As String
        s = ReadFile()
        ParseFile(s)
    Catch e As CouldntReadFileException
        ' ...
    Catch e As ParsingException
        ' ...
    End Try
End Sub

Function ReadFile() As String
    Try
        ' Open file
    Catch e
        Throw New CouldntReadFileException()
    End Try
End Function

Sub ParseFile(s As String)
    ...
End Sub
person polkovnikov.ph    schedule 12.02.2015