There is an interesting post over here about this, in relation to cross-application flow of control.
Well, recently, I\'ve come across an interesting problem. Gener
The issue with using exceptions is that tey (in the grand scheme of things) are very inefficient and slow. It would surely be as easy to have a if condition within the recursive function to just return as and when needed. To be honest, with the amount of memory on modern PC's its unlikely (not impossible though) that you'll get a stack overflow with only a small number of recursive calls (<100).
If the stack is a real issue, then it might become necessary to be 'creative' and implement a 'depth limited search strategy', allow the function to return from the recursion and restart the search from the last (deepest) node.
To sum up: Exceptions should only be used in exceptional circumstances, the success of a function call i don't believe qualifies as such.