Sign in to follow this  
Followers 0
DaLiMan

Recursion level? - Stack overflow?

10 posts in this topic

I'm having an error which sounds somewhat like:

Error: Excursion level has exceeded - Auto It it trying to prevent a stack overflow.

Can someone tell me what all this means?

And more important, how to prevent it??

Share this post


Link to post
Share on other sites



that means that this is a nono

Func SomeFunction()
  SomeFunction()
EndFunc
do not call a function within itself...

<{POST_SNAPBACK}>

OK.

Any quick ideas of making the script better stuctured?

Share this post


Link to post
Share on other sites

My guess is that your checking to see if you need to run the function again and then trying to run it again Do this:

$MyFunc=0

While NOT $MyFunc
$MyFunc=SomeFunction()
Wend

Func SomeFunc()
If it works
Return(1)
Else
Return(0)
EndFunc

red

Share this post


Link to post
Share on other sites

@redndahead

That's right.

I'm gonna change it like you you sayd.

10X

Share this post


Link to post
Share on other sites

Actually it can be useful recall a func from inside itself. But, rember to Retun just line after...

Share this post


Link to post
Share on other sites

What's this? :ph34r: AutoIt doesn't support recursion??? Hmmm... note to self... bug jon about adding into next release... :(

*** Matt @ MPCS

Share this post


Link to post
Share on other sites

It does support recursion, but not unlimited recursion. Recursion in any well-rounded script only serves to confuse the maker of the script and is not a good coding practice. That is why the error is currently there.


Who else would I be?

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

I found it useful when you have to 'correct' what the user input.

E.g. a non case sensitive string, the user input, the first part of the script check if it is fully lowercase. if it is it continues otherwise it makes it lowercase and restarts.

Of course this simple case can be solved with just a IF, but sometime in more complex loops you may need it. But... RETURN!!! :ph34r:

Edited by ezzetabi

Share this post


Link to post
Share on other sites

Actually it can be useful recall a func from inside itself. But, rember to Retun just  line after...

<{POST_SNAPBACK}>

How's that?

Can you give me an little example code?

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Little example.

It is little and it can solved elsehow, but it may give you an idea.

;$test keep a program to run
$test='program'
_Run($test)

Exit
Func _Run($input)
   If Not FileExist($input) AND FileExist($input & '.exe') Then
      _Run($input & '.exe')
      Return
   EndIf
   Run($input)
EndFunc
Edited by ezzetabi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0