Current Path : /usr/local/share/ri/1.8/system/Kernel/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/share/ri/1.8/system/Kernel/catch-i.yaml |
--- !ruby/object:RI::MethodDescription aliases: [] block_params: comment: - !ruby/struct:SM::Flow::P body: <tt>catch</tt> executes its block. If a <tt>throw</tt> is executed, Ruby searches up its stack for a <tt>catch</tt> block with a tag corresponding to the <tt>throw</tt>'s <em>symbol</em>. If found, that block is terminated, and <tt>catch</tt> returns the value given to <tt>throw</tt>. If <tt>throw</tt> is not called, the block terminates normally, and the value of <tt>catch</tt> is the value of the last expression evaluated. <tt>catch</tt> expressions may be nested, and the <tt>throw</tt> call need not be in lexical scope. - !ruby/struct:SM::Flow::VERB body: " def routine(n)\n puts n\n throw :done if n <= 0\n routine(n-1)\n end\n\n catch(:done) { routine(3) }\n" - !ruby/struct:SM::Flow::P body: <em>produces:</em> - !ruby/struct:SM::Flow::VERB body: " 3\n 2\n 1\n 0\n" full_name: Kernel#catch is_singleton: false name: catch params: | catch(symbol) {| | block } > obj visibility: public