<entry index='n'>
<name>Non-Local Exit</name>
<reference>object</reference>
<reference>bug</reference>
<reference>exception</reference>
<reference>method</reference>
<reference>ruby</reference>
<content>
    Non-local exit (or global exit) is
    not an escape within the ranges of the ((methods|Method))
    such as ((|break|)), ((|next|)), ((|redo|)), ((|retry|)), and ((|return|)),
    but the type which interrupts going back the hierarchy of the method call
    as long as it's not caught.
    In ((Ruby)) there are two way:
    by ((exception|Exception)), or ((|catch|))/((|throw|)).

    Almost all exceptions can be caught with '((|rescue|))'
    (including ((|SystemExit|)) generated by exit),
    but the exception not significant to catching
    (example: Fail in memory allocation/interpreter's ((bug|Bug))
    does not become the ((object|Object)) to catch.

    ((|catch|))/((|throw|)) is the one which, when '((|throw|))' is done,
    jumps at a dash to catch with the same tag
    as the tag specified.
</content>
</entry>
