我正在使用 VB.Net 开发一个应用程序,在使用On Error GoTo
时它会卡住On Error GoTo
与 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rnd As Random = New Random
On Error GoTo label
Dim n, array(10) As Integer
For i As Integer = 10 To 0 Step -2
n = rnd.Next(9)
array(i) = 10 / n
Next
label: MsgBox("Exception Occur")
End Sub
相关联的标签,即使它们是块中没有错误。这里的代码片段是:
{{1}}
我的目标是在执行时发生任何错误时将错误消息显示为异常发生。但它会一直打印。任何人都可以建议一个解决方案。
答案 0 :(得分:5)
尽量避免在代码中的任何位置使用On Error GoTo
语句。它可能会导致很多麻烦,这只是一种不好的做法,而且看起来不太好。(Spaghetti code)相反,你可以使用一个简单的Try...Catch语句。这是一个简短的例子:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rnd As Random = New Random
Try
Dim n, array(10) As Integer
For i As Integer = 10 To 0 Step -2
n = rnd.Next(9)
array(i) = 10 / n
Next
Catch ex as Exception
MsgBox("Exception Occur")
End try
End Sub
答案 1 :(得分:0)
Label
,因为它是For
之后要执行的下一行,它们在您的代码中不会破坏此正常流程,因此您需要包含Exit Eub
在label
之前阻止这种情况。即,代码将是:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rnd As Random = New Random
On Error GoTo label
Dim n, array(10) As Integer
For i As Integer = 10 To 0 Step -2
n = rnd.Next(9)
array(i) = 10 / n
Next
Exit Sub
label: MsgBox("exception")
End Sub
使用此Exit Sub
将成为For
之后执行的下一行。所以它会帮助你从Sub