在Catch for visual basic中抛出异常

时间:2015-02-12 14:04:40

标签: exception throw basic

我的问题是关注在Catch Block中使用'Throw New Exception'。

我在一些Catch块中看到了MessageBox(“message”),或者抛出了新的异常(“message”)。

有区别吗?为什么我会使用Throw New Exception而不是使用消息框。

1 个答案:

答案 0 :(得分:0)

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