Non-Local Exit
object
bug
exception
method
ruby
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.