Issue #6372 has been updated by mame (Yusuke Endoh).
Status changed from Open to Feedback
Assignee set to matz (Yukihiro Matsumoto)
How about:
class Symbol
def thrown?
thrown = true
catch(self) do
yield
thrown = false
end
thrown
end
end
--
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #6372: More specific error for uncaught throw
https://bugs.ruby-lang.org/issues/6372#change-26269
Author: trans (Thomas Sawyer)
Status: Feedback
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 1.9.3
I have this method:
=begin
class Symbol
# Does the block throw the symbol?
#
def thrown?
catch(self) do
begin
yield
true
rescue ArgumentError => err # 1.9 exception
false
rescue NameError => err # 1.8 exception
false
end
end
end
end
=end
But it was recently pointed out to me that the rescue of ArgumentError and NameError is not good enough b/c they might rescue an unrelated error of the same type. So to make this right there needs to be a more specific error. Perhaps `class ThrowError < ArgumentError`.
--
http://bugs.ruby-lang.org/