(e-mail address removed) said:
I have nested try catch loops.
I think the above sentence is where your thinking goes muddy.
A try-catch structure is not loop. You'll never go "backwards" with
try-catch [-finally].
If an exception is raised in the outer try will it return from the
method after being caught in th eouter catch or will it go back to
the inner try again after being caught in the outer catch.
No; when an exception is thrown within a "try" block, the control will
be passed to the corresponding "catch" block. If the type of exception
thrown matches the type of exception for the "catch", then the catch
block will be executed. Otherwise, the exception will be passed to the
"catch" block corresponding to the enclosing "try" block, and handled
in a similar fashion.
After the exception has been handled in some "catch" block, the execution
will continue from the end of that "catch" block. If there was no matching
"catch" block, the thread will terminate.
"finally" blocks will be executed whenever execution exists a "try" block.
If there was a "catch" block matching the exception, the "finally" block
will be executed after the "catch" block.
But as said, your main issue seems to be to consider try-catch a form of
loop, which it is not. Drop that, and you'll see that the execution flow
is natural.