如何使用一行VB6退出嵌套子对象?

如何使用一行VB6退出嵌套子对象?,vb6,Vb6,我想知道是否有一种从嵌套的另一个子集2退出子集1的简化方法;所以,Sub2在Sub1中被调用,如果在Sub中验证失败,我想退出Sub1吗 Sub Process() Validate() 'SomeMorecode... End Sub Sub Validate() '... '... End Sub 首先,您需要了解sub不会返回值。它们就像C中的空函数 第二,当您想退出某个子系统时,请使用Exit Sub 或者,如果要退出某个函数,请使用exit函

我想知道是否有一种从嵌套的另一个子集2退出子集1的简化方法;所以,Sub2在Sub1中被调用,如果在Sub中验证失败,我想退出Sub1吗

Sub Process()
    Validate()

    'SomeMorecode...

End Sub

Sub Validate()
    '...
    '...


End Sub

首先,您需要了解sub不会返回值。它们就像C中的空函数

第二,当您想退出某个子系统时,请使用Exit Sub

或者,如果要退出某个函数,请使用exit函数

或者,如果要退出Do循环,请退出Do exit While等

请记住,若您在实际返回任何内容之前退出函数,那个么将自动设置默认值。对于布尔型,该值将为False

你明白了吗

Sub MyFirstSub()
    If Validate() Then
       'Do more work here
    Else
       Exit Sub  ' Early Exit
    End If

    'Other things to do after validation is TRUE
    '...
    '...

End Sub

Function Validate() As Boolean
   ' Do validation here and either return TRUE or FALSE
   If Rnd(1) > 0.5 Then
     Validate = True
   Else
     Validate = False
   End If
End Function

使Sub2成为一个函数,如果出现问题,则返回false;如果不是Func2,则在Sub1中退出sub。引发错误是另一种选择,它将跳转到最后定义的错误处理程序。VB中的sub不返回值。仅功能do@AlexK.I我对您的错误处理解决方案感兴趣。您能详细说明上次定义的错误处理程序吗?您是说Sub1 on error GoTo ERRORMHANDLER然后验证吗?如果sub0在on error GoTo内调用Sub1…&然后sub1调用sub2,sub2抛出错误,执行返回到sub0中的错误处理程序,同时退出sub2和sub1。否,错误将转到最近的错误处理程序。当然,您可以在错误处理程序中重新引发错误以转到上一个处理程序。如果不验证,则更可能是。。。