我的问题是关注在Catch Block中使用'Throw New Exception'。
我在一些Catch块中看到了MessageBox(“message”),或者抛出了新的异常(“message”)。
有区别吗?为什么我会使用Throw New Exception而不是使用消息框。
答案 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