Michal
(Michal)
1
Hi,
I can’t figure out how to:
class Foo
class Bar << RuntimeError; end
def something
begin
# …
rescue Bar # i want Bar, not Foo::Bar
raise Bar # i want Foo::Bar, correct.
end
end
end
Does anyone have idea how to do that?
(IIRC, In c++ this is done via “::” operator)
Best regards,
Michal
···
–
Michal Safranek, email:
a=((“a”…“z”).to_a+["@","."]);p(("%b"%[0x645bbb83a6a496]
).scan(/…/).map{|x|a[Integer(“0b”+x)]}.join.reverse)
Wejn wrote:
Hi,
I can’t figure out how to:
class Foo
class Bar << RuntimeError; end
def something
begin
# …
rescue Bar # i want Bar, not Foo::Bar
raise Bar # i want Foo::Bar, correct.
end
end
end
Does anyone have idea how to do that?
(IIRC, In c++ this is done via “::” operator)
(trying to avoid puns about raising the bar…)
Ruby also has a :: operator:
begin
class Bar < SyntaxError; end
class Foo
class Bar < RuntimeError; end
def something
begin
yield
rescue ::Bar # i want Bar, not Foo::Bar
raise Bar # i want Foo::Bar, correct.
end
end
end
Foo.new.something do raise Bar; end
rescue Exception => e
p e.class # => Foo::Bar
end
Michal
(Michal)
3
Ick!
1000.times { puts “I will think about the problem (and experiment in” +
" irb) before asking dumb questions." }
Thanks a lot 
Michal
···
–
Michal Safranek, email:
a=((“a”…“z”).to_a+["@","."]);p(("%b"%[0x645bbb83a6a496]
).scan(/…/).map{|x|a[Integer(“0b”+x)]}.join.reverse)