From: "mame (Yusuke Endoh)" Date: 2012-04-28T07:26:05+09:00 Subject: [ruby-core:44707] [ruby-trunk - Feature #6372][Feedback] More specific error for uncaught throw 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 ---------------------------------------- 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/