Bug #4229: Thread#raise 3rd form arguments ignored http://redmine.ruby-lang.org/issues/show/4229 Author: Daniel Berger Status: Open, Priority: Normal Category: core, Target version: Ruby 1.8.7 ruby -v: ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0] It seems that at one point the Thread#raise method was documented to accept an array as the 3rd argument. As it stands now it appears to accept either a string or an array. But, if an array is provided, only the first argument is used. I think this ties back to the code in rb_make_exception in eval.c. For example: thread = Thread.new{ sleep } Thread.pass until thread.status == 'sleep' thread.raise(NameError, 'hello', ['foo', 'bar', 'baz']) begin thread.join rescue NameError => err puts err.to_s puts err.backtrace.join("\n") end The result is: hello foo test.rb:8:in `join' test.rb:8 Note that 'bar' and 'baz' were apparently dropped from any part of the backtrace. Can you please clarify the spec? ---------------------------------------- http://redmine.ruby-lang.org