[#8136] Confused exception handling in Continuation Context — "Robert Dober" <robert.dober@...>

Hi all

13 messages 2006/07/06

[#8248] One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...>

I just posted this to ruby-talk. But I would also like to discuss this

33 messages 2006/07/18
[#8264] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

From my experience using both tool chains on Windows (for the ruby-prof

[#8266] Re: One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...> 2006/07/19

Tim, I'm going to top reply since your post was so long. I'm interested in

[#8267] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

> Tim, I'm going to top reply since your post was so long. I'm interested in

[#8271] my sandboxing extension!! — why the lucky stiff <ruby-core@...>

I have (what feels like) very exciting news. I finally sat down to code up my

17 messages 2006/07/19

[#8430] Re: doc patch: weakref. — "Berger, Daniel" <Daniel.Berger@...>

> -----Original Message-----

19 messages 2006/07/28
[#8434] Re: doc patch: weakref. — Yukihiro Matsumoto <matz@...> 2006/07/29

Hi,

[#8436] Re: doc patch: weakref. — Daniel Berger <djberg96@...> 2006/07/29

Yukihiro Matsumoto wrote:

[#8437] Re: doc patch: weakref. — Mauricio Fernandez <mfp@...> 2006/07/29

On Sat, Jul 29, 2006 at 07:37:24PM +0900, Daniel Berger wrote:

[#8441] Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...>

I have the following code:

18 messages 2006/07/30
[#8442] Re: Inconsistency in scoping during module_eval? — nobu@... 2006/07/30

Hi,

[#8443] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/30

Why does this:

[#8445] Re: Inconsistency in scoping during module_eval? — Yukihiro Matsumoto <matz@...> 2006/07/30

Hi,

[#8454] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/31

So to clarify...

Re: [Bug?] Confused exception handling in Continuation Context

From: "Robert Dober" <robert.dober@...>
Date: 2006-07-06 17:42:35 UTC
List: ruby-core #8155
On 7/6/06, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
>
> Hi,
>
> In message "Re: [Bug?] Confused exception handling in Continuation
> Context"
>     on Thu, 6 Jul 2006 21:04:25 +0900, "Robert Dober" <
> robert.dober@gmail.com> writes:
>
> <SNIP>
>

Ok here we go again.
I have the feeling that my limitted understanding of continuations puts you
off the track. As a matter of fact I do not complain that there is an
exception, this exception is intentional, I complain that it is
handled/rescued when it shall not.
But please kindly forget about the much too complicated example above.
Let us look at this:
------------------------8<--------------------------
cat iter3.rb
#!/usr/bin/env ruby

class DemonstrationError < Exception; end
$next = nil
def will_raise
        return $next.call if $next
        loop do
                callcc{ |$next|
                        raise DemonstrationError
                }
        end # do
end # def will_raise

puts "In the beginning..."
begin
        puts "First loop..."
        will_raise
rescue DemonstrationError
        puts "Caught in first loop..."
end

puts "After first block, but now we will not catch the exception!!!"
### This should raise an *uncaught* Exception
will_raise
------------------------ 8<------------------------------

Do you agree that
(a) the continuation object in $next will be defined forever after the first
call of will_raise?
(b) every invocation of $next (triggered by will_raise) will raise a
DemonstrationError?
(c) the first invocation of $next (triggered by will_raise) will  be handled
in the rescue clause?
(d) the second invocation of $next (triggered by will_raise) will not be
handled?

in that case this code should execute each puts statement exactly once and
then fail with an uncaught DemonstrationError?

If you are not in agreement could you please explain the behavior?

Ty again
Robert

Attachments (1)

iter3.tar.bz2 (520 Bytes, Archive)

In This Thread