retry$B$N;H$$J}(B

e$B!!$5$5$@$G$9!#e(B

eklerni wrote:

end

e$B$G$9$+$M!)$3$NNc$N>l9g$O%k!<%W$NEY$Ke(Bensuree$B$G8e=hM}$7$?$$$s$G!"Bg0hC&=P$7e(B
e$B$J$$e(Bwhilee$B$@$He(B
e$BBj0U$OK~$?$5$J$$$H;W$$$^$9!#e(B

e$B!!$"$j$c!"$J$k$[$I$J$!!#$$$m$$$m$H<:Ni$7$^$7$?!#$d$C$Q$jF0$+$7$F3NG’e(B
e$B$7$F$+$i$8$c$J$$$H%@%a$@$J$"!#e(B

def foo
while true
begin
yield
break unless $cond
A()
ensure
B()
end
end
end

e$B!!$3$s$J$s$G$I$&$G$7$g$&$+!#e(B

e$B!!$5$5$@$G$9!#e(B

eklerni wrote:

(yield->A()e$B2?$i$+$N=hM}e(B->B()e$B8e=hM}e(B->…)->yield->B()e$B8e=hM}e(B

e$B$K$J$C$A$c$C$F$^$9e(B^^;

e$B!!$"$!$J$k$[$I!#$h$/LdBj$rFI$s$G$$$J$/$F$9$_$^$;$s!#e(B

e$B1sF#$H?=$7$^$9!#e(B

(yield->e$B8e=hM}e(B->yield->e$B8e=hM}e(B->…)->e$B2?$i$+$N=hM}e(B->e$B8e=hM}e(B
e$B$H$$$&%U%m!<$r8e=hM}$N%3!<%I$r0l2U=j$K$^$H$a$k>r7o$G9T$$$?$$$N$G$9$,!"e(B

e$B8e=hM}$O=*N;>r7o$K1F6A$7$J$$$b$N$H$7$F!"0J2<$O$I$&$G$7$g$&!#e(B
retry/ensure e$BG>$G$J$$;d$K$O$3$C$A$NJ}$,$o$+$j$d$9$$$G$9!#e(B

def foo
begin
yield
p “e$B2?$i$+$N=hM}e(B” unless term = (e$B>r7oe(B)
ensure
p “e$B8e=hM}e(B”
end while term
end

e$BJX>h$G!“0JA0$+$i$NGyA3$H$7$?5?Ld$@$C$?$s$G$9$,!”%V%m%C%/Dj5A$Ke(B
rescue/ensure e$B@a$,;XDj$G$-$J$$$N$O$J$<$G$7$g$&!#e(B
e$B%a%=%C%I$G$G$-$k$s$@$+$i%V%m%C%/$G$G$-$F$b$$$$5$$,$7$^$9!#e(B

loop do
:
rescue
:
ensure
:
end

e$B$8$c$"e(B while … rescue … end e$B$de(B if … then … rescue

… end e$B$b!"e(B

e$B$C$FOC$K$J$k$+$b$7$l$^$;$s$,!#e(B

e$B$J$+$@$G$9!#e(B

At Mon, 13 Aug 2007 04:19:34 +0900,
eklerni wrote in [ruby-dev:31390]:

e$B85$NNc$Oe(B

(yield->e$B8e=hM}e(B->yield->e$B8e=hM}e(B->…)->e$B2?$i$+$N=hM}e(B->e$B8e=hM}e(B
e$B$H$$$&%U%m!<$r8e=hM}$N%3!<%I$r0l2U=j$K$^$H$a$k>r7o$G9T$$$?$$$N$G$9$,!"e(B
e$B!Je(B()e$B$OG$0U$N%k!<%W!Ke(B

e$B$3$s$J$N$G!#e(B

while true
begin
unless yield
a()
break
end
ensure
b()
end
end

until begin
unless yield
a()
true
end
ensure
b()
end
end

e$B$"$k$$$O!“e(B[ruby-dev:31306]e$B$N:G=i$NNc$G$ONc30$N$H$-$K$O8e=hM}$O<Be(B
e$B9T$5$l$^$;$s$,!”$=$l$G$$$$$J$iI,MW$J$N$Oe(Blispe$B$G$$$&e(Bprog1e$B$J$N$G$O!#e(B

def foo
until ((a(); true) unless yield).tap {b()}
end
end

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31393] Re: retrye$B$N;H$$J}e(B”
on Mon, 13 Aug 2007 11:16:28 +0900, “Yusuke ENDOH” [email protected]
writes:

|e$BJX>h$G!“0JA0$+$i$NGyA3$H$7$?5?Ld$@$C$?$s$G$9$,!”%V%m%C%/Dj5A$Ke(B
|rescue/ensure e$B@a$,;XDj$G$-$J$$$N$O$J$<$G$7$g$&!#e(B
|e$B%a%=%C%I$G$G$-$k$s$@$+$i%V%m%C%/$G$G$-$F$b$$$$5$$,$7$^$9!#e(B
|
|loop do
| :
|rescue
| :
|ensure
| :
|end

e$B$3$l$@$He(B

begin
loop do
:
end
rescue
:
ensure
:
end

e$B$+!"e(B

loop do
begin
:
rescue
:
ensure
:
end
end

e$B7h$a$+$M$k$C$F$$$&M}M3$G!":NMQ$7$F$J$+$C$?$h$&$K;W$$$^$9!#e(B

In article E1ILDTi-0005T6-Be@x31,
Yukihiro M. [email protected] writes:

e$BFCCJ$N;v>p$,$J$1$l$P!":#$^$GDL$jF0:n$7$F$[$7$$$N$G$9$,!#e(B

retry e$B$r9MN8$7$?>l9g!"%a%=%C%I$N%i%C%Q!<$O$I$&Dj5A$9$k$N$,$he(B
e$B$$$G$7$g$&$+e(B?
(e$BMQES$H$7$F$O!"e(BDRb e$B$_$?$$$J$N$H$+e(B)

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

e$B$3$N7o$O;d$N4*0c$$$@$H$$$&$3$H$,L@$i$+$K$J$C$F$k$o$1$G$9$,!#e(B

In message “Re: [ruby-dev:31456] Re: retrye$B$N;H$$J}e(B”
on Fri, 17 Aug 2007 18:38:00 +0900, Urabe S.
[email protected] writes:

|e$B$H$j$“$($:e(B1.8.5e$B$G$3$s$J$H$3$m$N5sF0$r:#99JQ$($kM=Dj$OA4A3$”$j$^$;$s!#e(B

e$B$=$j$c$=$&$G$7$g$&!#JQ$($kI,MW$b$"$j$^$;$s$7!#e(B
e$B$H$$$&$+!"e(B1.8.5e$B$G$O$G$-$F$k$H;W$$$3$s$G$?$o$1$G$9$,!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31381] Re: retrye$B$N;H$$J}e(B”
on Mon, 13 Aug 2007 03:02:06 +0900, SASADA Koichi [email protected]
writes:

|e$B!!$9$_$^$;$s!"!V4r$7$$>lLL!W$,$h$/$o$+$C$F$$$J$$$N$G$9$,!"65$($F$$$?e(B
|e$B$@$1$^$;$s$+!#e(B

Sathere$B$N%$%F%l!<%?$N$h$&$J$N$r<B8=$9$k$3$H$r9M$($F$^$7$?!#e(B
Rubye$B$C$]$$;H$$J}$J$iI,MW@-$ODc$=$&$G$9$M!#e(B

|e$B!!$G!"$3$NJU$I$&$7$^$7$g$&!d$^$D$b$H$5$se(B

e$BFCCJ$N;v>p$,$J$1$l$P!":#$^$GDL$jF0:n$7$F$[$7$$$N$G$9$,!#e(B

In article [email protected],
SASADA Koichi [email protected] writes:

e$BB8:_$9$k$@$1$G<~0O$KLdBj$r0z$-5/$3$7!"$+$D!“Lr$KN)$DNc$b=P$Fe(B
e$B$3$J$$!”$I$&$7$h$&$b$J$$5!G=$O:o=|$9$Y$-$@$H;W$$$^$9!#e(B

Contin…

e$B$($'!"$^$C$?$/$b$C$F!#e(B
e$B$@$+$i$=$C$A$b:o=|$9$Y$-$@$H;W$$$^$9!#e(B

From:eklerni
e$B%l%9$G$-$^$;$s$G$7$?$,!“BP0F$r<($7$F$/$@$5$C$?1sF#$5$sCfED$5$se(B
e$B$”$j$,$H$&$4$6$$$^$9!#FC$Ke(Bretrye$B$KMj$kI,MW$O$J$+$C$?$N$G$9$M!#e(B

e$B$s$G!"7k6Ie(B1.9e$B$Ge(Bretrye$B$,;H$($k$N$Oe(B

  • rescuee$B@ae(B
  • fore$BJ8$NCfe(B
  • e$B%V%m%C%/IU$-%a%=%C%I8F$S=P$7$N%V%m%C%/e(B

e$B$H$$$&$3$H!J8=>u$N%j%U%!%l%s%9%^%K%e%"%k$N5-:$HF1$8!K$G$9$M!#$"$j$,$H$&e(B
e$B$4$6$$$^$7$?!#e(B

In article E1IMCCg-00077m-4a@x31,
Yukihiro M. [email protected] writes:

|e$B$G$O!"!V4X?t%H%C%W%l%Y%k!W$O!Ve(Brescuee$B$G$b%V%m%C%/$G$be(B for e$B$Ne(B
|e$BFbB&$G$b$J$$$H$3$m!W$G$9$+e(B?

e$B$=$&$$$&$3$H$K$J$j$^$9$M!#e(B

e$B$H$9$k$H!"!V4X?t%H%C%W%l%Y%k!W$H$$$&$N$Oe(B retry e$B$K0MB8$7$?35e(B
e$BG0$K;W$($^$9!#e(B

e$B$=$&$$$&35G0$K!“$”$?$+$be(B retry e$B$HFHN)$KDj5A$G$-$k$h$&$K46$8e(B
e$B$i$l$k!V4X?t%H%C%W%l%Y%k!W$H$$$&L>A0$rIU$1$k$N$O:.Mp$N85$G$Oe(B
e$B$J$$$G$7$g$&$+!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31454] Re: retrye$B$N;H$$J}e(B”
on Fri, 17 Aug 2007 17:56:13 +0900, Tanaka A. [email protected]
writes:

|> e$B8e<T$G$9!#e(Bwhilee$B$J$I$NCf$G$Ne(Bretrye$B$O%k!<%W@hF,$K%8%c%s%W$7$^$9!#e(B
|> e$B$3$l$O%I%-%e%a%s%H$K=q$$$F$“$k$O$:!#e(B
|
|e$B8+$D$1$i$l$^$;$s$G$7$?!#e(B
|e$B%I%-%e%a%s%H$N$I$3$K=q$$$F$”$j$^$9$+e(B?

e$B$(!<$C$H!“e(B…e$B$”$C!"$9$_$^$;$s!#4*0c$$$G$7$?!#e(B
redoe$B$H:.F1$7$F$$$?$H$$$&!#e(B

e$B8@8l@_7W<T$H$7$FCQ$:$+$7$$!#e(B

e$B!!$5$5$@$G$9!#e(B

Yukihiro M. wrote:

|e$B$G$b!“e(Bloop e$B$C$F$J$s$G$9$+e(B?
|
|e$B0J2<$N2DG=@-$r;W$$IU$-$^$9$,!”$I$A$i$b$b$C$H$b$i$7$/46$8$i$le(B
|e$B$^$;$s!#e(B
|
|* Kernel.loop e$B%a%=%C%Ie(B
|* e$B%k!<%W@)8f9=J8e(B (while, until, for)

e$B8e<T$G$9!#e(Bwhilee$B$J$I$NCf$G$Ne(Bretrye$B$O%k!<%W@hF,$K%8%c%s%W$7$^$9!#e(B
e$B$3$l$O%I%-%e%a%s%H$K=q$$$F$"$k$O$:!#e(B

e$B!!$7$^$;$s!#e(B

$ ruby -ve ’

while true
retry
end

ruby 1.8.5 (2006-08-25) [i486-linux]
-e:3: retry outside of rescue clause

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31467] Re: retrye$B$N;H$$J}e(B”
on Sat, 18 Aug 2007 09:36:47 +0900, Tanaka A. [email protected]
writes:

|e$B$H$9$k$H!“!V4X?t%H%C%W%l%Y%k!W$H$$$&$N$Oe(B retry e$B$K0MB8$7$?35e(B
|e$BG0$K;W$($^$9!#e(B
|
|e$B$=$&$$$&35G0$K!”$"$?$+$be(B retry e$B$HFHN)$KDj5A$G$-$k$h$&$K46$8e(B
|e$B$i$l$k!V4X?t%H%C%W%l%Y%k!W$H$$$&L>A0$rIU$1$k$N$O:.Mp$N85$G$Oe(B
|e$B$J$$$G$7$g$&$+!#e(B

e$B$=$&$G$7$g$&$M!#85!9$=$NC18l$O!V$&$C$+$j;H$C$F$7$^$C$?!W$b$Ne(B
e$B$G!“?7$7$$35G0$H$7$FF3F~$9$k$D$b$j$O$”$j$^$;$s!#:#8e!"e(B(e$B$3$NJ8e(B
e$BL.$G$Oe(B)e$B;H$o$J$$$h$&$K$7$^$9!#e(B

In article E1IMBWi-0006vk-OI@x31,
Yukihiro M. [email protected] writes:

fore$B$Oe(Beache$B$N%V%m%C%/IU$-8F$S=P$7$HFbItE*$K$O$[$\F1$8$J$N$G!“%Ve(B
e$B%m%C%/$NCf$G$Ne(Bretrye$B$H0lO!Bq@8$G$9$M!#:#$N$H$3$m!”%V%m%C%/$Ne(B
e$BCf$G$Ne(Bretrye$B$r6X;_$9$kM=Dj$O$"$j$^$;$s!#$3$C$A$O<BAu$G$-$F$ke(B
e$B$7!#e(B

e$B$G$O!"!V4X?t%H%C%W%l%Y%k!W$O!Ve(Brescuee$B$G$b%V%m%C%/$G$be(B for
e$B$Ne(B
e$BFbB&$G$b$J$$$H$3$m!W$G$9$+e(B?

Tanaka A. wrote:

e$BB8:_$9$k$@$1$G<~0O$KLdBj$r0z$-5/$3$7!"$+$D!“Lr$KN)$DNc$b=P$Fe(B
e$B$3$J$$!”$I$&$7$h$&$b$J$$5!G=$O:o=|$9$Y$-$@$H;W$$$^$9!#e(B

Contin…

In article E1IM1W9-0001uC-Bz@x31,
Yukihiro M. [email protected] writes:

|e$B!V4X?t%H%C%W%l%Y%k!W$C$F$J$s$G$9$+e(B?

e$B!Ve(Brescuee$B$G$b%V%m%C%/$NFbB&$G$b$J$$$H$3$m!W$N$D$b$j$G$7$?!#e(B

e$B%I%-%e%a%s%H$rD4$Y$?$H$-$K!"8=:$Ne(B retry e$B$,e(B for
e$B$K8z$/$H$$$&e(B
e$B$3$H$rCN$C$F$7$^$C$?$N$G$9$,!"e(Bfor e$B$KBP$9$ke(B retry
e$B$O6X;
$NJ}e(B
e$B8~$G$9$+e(B?

Yukihiro M. wrote:

e$B$$$d$s!#BP1~M=Dj$O$J$7!)e(B
e$B$3$l$b$J$K$+LdBj$"$j$+$J!)e(B

e$B$H$j$"$($:e(B1.8.5e$B$G$3$s$J$H$3$m$N5sF0$r:#99JQ$($kM=Dj$OA4A3$"$j$^$;$s!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31447] Re: retrye$B$N;H$$J}e(B”
on Fri, 17 Aug 2007 05:17:46 +0900, Tanaka A. [email protected]
writes:

|e$B;d$NMW5a$,K~$?$5$l$kJ}8~$G$“$k$3$H$O$o$+$k$N$G!”$3$3$G5DO@$re(B
|e$B$H$a$F$b$$$$$+$H$b;W$C$?$N$G$9$,!“$$$A$$&?R$M$F$$/$3$H$K$9e(B
|e$B$k$H!”!V4X?t%H%C%W%l%Y%k!W$C$F$J$s$G$9$+e(B?

e$B$(!<$H!"MQ8l$,ITE,@Z$@$C$?$+$7$i!#e(B

|e$B%H%C%W%l%Y%k$G$J$$$H$$$&$3$H$O$J$K$+$NCf$KF~$C$F$$$k$H$$$&$3e(B
|e$B$H$G$7$g$&$,!"$=$N!V$J$K$+!W$K$O2?$,4^$^$l$^$9$+!#e(B
|
|* rescue e$B@ae(B
|* e$B%a%=%C%I8F$S=P$7$N%V%m%C%/e(B
|* begin e$B<0$N%%G%#e(B

  • rescue
  • loop
  • e$B%V%m%C%/e(B

e$B$NFbIt$G$9!#>e5-$N!V%H%C%W%l%Y%k!W$O$=$l0J30$H$$$&0UL#$G$9$M!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31450] Re: retrye$B$N;H$$J}e(B”
on Fri, 17 Aug 2007 13:21:03 +0900, Tanaka A. [email protected]
writes:

|> e$B$(!<$H!“MQ8l$,ITE,@Z$@$C$?$+$7$i!#e(B
|
|e$B$=$NMQ8l$NDj5A$O$I$3$+$K$”$j$^$9$+e(B?
|e$B$H$j$“$($:%^%K%e%”%k$Oe(B grep e$B$7$F$_$^$7$?$,:$C$F$$$^$;$s$G$7e(B
|e$B$?!#e(B

e$B$$$d!"e(B(e$B>/$J$/$H$b=i=P;~$K$Oe(B)e$BL$Dj5A8l$G$9$+$i!#e(B

|e$B$G$b!“e(Bloop e$B$C$F$J$s$G$9$+e(B?
|
|e$B0J2<$N2DG=@-$r;W$$IU$-$^$9$,!”$I$A$i$b$b$C$H$b$i$7$/46$8$i$le(B
|e$B$^$;$s!#e(B
|
|* Kernel.loop e$B%a%=%C%Ie(B
|* e$B%k!<%W@)8f9=J8e(B (while, until, for)

e$B8e<T$G$9!#e(Bwhilee$B$J$I$NCf$G$Ne(Bretrye$B$O%k!<%W@hF,$K%8%c%s%W$7$^$9!#e(B
e$B$3$l$O%I%-%e%a%s%H$K=q$$$F$"$k$O$:!#e(B