Backport #4229
Updated by jeremyevans0 (Jeremy Evans) almost 5 years ago
=begin 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? =end