mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* doc/syntax/control_expressions.rdoc (redo Statement): Added note
about retry. * doc/syntax/exceptions.rdoc: Added retry statement git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
eaab306b59
commit
d902101b32
3 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Jan 16 03:05:50 2013 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* doc/syntax/control_expressions.rdoc (redo Statement): Added note
|
||||
about retry.
|
||||
* doc/syntax/exceptions.rdoc: Added retry statement
|
||||
|
||||
Tue Jan 15 23:12:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* tool/vpath.rb (VPath#list): default separator to PATH_SEPARATOR from
|
||||
|
|
|
@ -397,3 +397,8 @@ Use +redo+ to redo the current iteration:
|
|||
|
||||
This prints [0, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11]
|
||||
|
||||
In Ruby 1.8 you could also use +retry+ where you used +redo+. This is no
|
||||
longer true, now you will receive a SyntaxError when you use +retry+ outside
|
||||
of a +rescue+ block. See {Exceptions}[rdoc-ref:syntax/exceptions.rdoc]
|
||||
for proper usage of +retry+.
|
||||
|
||||
|
|
|
@ -55,6 +55,23 @@ The exception is matched to the rescue section starting at the top, and matches
|
|||
only once. If an ArgumentError is raised in the begin section it will not be
|
||||
handled in the StandardError section.
|
||||
|
||||
You may retry rescued exceptions:
|
||||
|
||||
begin
|
||||
# ...
|
||||
rescue
|
||||
# do something that may change the result of the begin block
|
||||
retry
|
||||
end
|
||||
|
||||
Execution will resume at the start of the begin block, so be careful not to
|
||||
create an infinite loop.
|
||||
|
||||
Inside a rescue block is the only valid location for +retry+, all other uses
|
||||
will raise a SyntaxError. If you wish to retry a block iteration use +redo+.
|
||||
See {Control Expressions}[rdoc-ref:syntax/control_expressions.rdoc] for
|
||||
details.
|
||||
|
||||
To always run some code whether an exception was raised or not, use +ensure+:
|
||||
|
||||
begin
|
||||
|
|
Loading…
Reference in a new issue