Syntax: "Exit Sub" or "Return" in VB.NET subroutines

Viewed 79227

Both "Exit Sub" or "Return" seem to accomplish the same thing -- exit a subroutine. Is there any difference in how they work under the covers?

That is,

Private Sub exitNow()
    Exit Sub
End Sub

or

Private Sub exitNow()
    Return
End Sub
7 Answers

From the doc:

In a Sub or Set procedure, the Return statement is equivalent to an Exit Sub or Exit Property statement, and expression must not be supplied.

So they're the same in this context.

(Return (<value>) is used in functions and property.get's. Obviously slightly different in that context).

  • First of all, Procedures comes with sub, we should know that we are working on specific procedures that don't return a specific value with the ability of passing some specific parameters or even without passing any parameter. Such as:
  • Print something().
  • Calculate the factorial of integer number CalcFact(X).
  • Do some processes for a specific task.

  • Function is a specific process programmed to achieve a specific task by also passing some specific parameters, and it has to return some value that can be used to to complete the overall task, such as validation the user name and user pass.

In short Sub Doesn't return value and we call it directly "Print HelloWorld()" , whereas functions do such as:

  • ValidUsersNameAndPass("Johne","jOhNe13042019") ' This could return a Boolean value.
  • ValidUsersNameAndPass("Johne","jOhNe13042019"); // This could return a Boolean value.

While there are exceptions like guard clauses, in most cases I would consider either a sign that the method is too long.

Related