我最近在VB.NET上编写了一个程序,例如显示Input1 Mod Input2。我在这里使用函数:
Private Function remainder(intno1 As Integer, intno2 As Integer) As Integer
Dim intresult As Integer
intresult = intno1 Mod intno2
remainder = intresult
End Function
然后我在Button_Click事件上调用它:
Dim intm As Integer, intn As Integer
Dim intmod As Integer
intm = Val(TextBox1.Text)
intn = Val(TextBox2.Text)
If TextBox1.Text >= TextBox2.Text Then
MsgBox("Error while computing proccess ! Please try Again.", vbOKOnly + vbCritical, "Error!")
**Stop statement**
End If
intmod = remainder(intm, intn)
RichTextBox1.Text = "The result is " & Str(intmod)
正如您在此代码中看到的,我在txt1较大或等于txt2时使用if语句,然后显示消息框。在End If子句之前我想使用停止运行代码的语句。我的意思是停止在Function上执行这些过程。
我使用Stop
和End
语句,但在调试程序后,它会停止响应甚至退出程序。
我该怎么办?
答案 0 :(得分:1)
尝试其中一个退出方法
Exit Sub
或者
Return
简单使用:
Dim intm As Integer, intn As Integer
Dim intmod As Integer
intm = Val(TextBox1.Text)
intn = Val(TextBox2.Text)
If TextBox1.Text >= TextBox2.Text Then
MsgBox("Error while computing proccess ! Please try Again.", vbOKOnly + vbCritical, "Error!")
Exit Sub
End If
intmod = remainder(intm, intn)
RichTextBox1.Text = "The result is " & Str(intmod)
答案 1 :(得分:1)
您将使用Exit Sub
调用来停止执行该例程。如果它是一个函数,Exit Function
CInt
而不是Val
强制转换整数,你的消息应该更有用(即计算时出错了什么?)。 "第一个整数必须小于第二个"对用户来说会更有用。
答案 2 :(得分:0)
如果您希望退出某个功能而不返回任何值,它会显示软件故障,并且不得给人一种“正常营业”的印象。负责的来电者代码。
为此你需要抛出异常:
Throw New Exception("Error while computing proccess ! Please try Again.")
在这种情况下,异常并不令人惊讶,当输入文本框不符合预期时,很可能会无意中执行命令。 在这种情况下,没有理由抛出错误,但是已经阻止了代码调用者中的执行函数,而不是函数体中的执行函数。