停止在函数中运行代码

时间:2016-07-02 21:00:47

标签: vb.net

我最近在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上执行这些过程。

我使用StopEnd语句,但在调试程序后,它会停止响应甚至退出程序。

我该怎么办?

3 个答案:

答案 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.")

在这种情况下,异常并不令人惊讶,当输入文本框不符合预期时,很可能会无意中执行命令。 在这种情况下,没有理由抛出错误,但是已经阻止了代码调用者中的执行函数,而不是函数体中的执行函数。