Project

General

Profile

Backport #4229

Thread#raise 3rd form arguments ignored

Added by djberg96 (Daniel Berger) over 8 years ago. Updated 7 days ago.

Status:
Closed
Priority:
Normal
Assignee:
-
[ruby-core:34014]

Description

=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

History

#1

Updated by jeremyevans0 (Jeremy Evans) 7 days ago

  • ruby -v deleted (ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0])
  • Target version deleted (Ruby 1.8.7)
  • Status changed from Open to Closed
  • Description updated (diff)
  • Project changed from Ruby 1.8 to Backport187
  • Tracker changed from Bug to Backport

Also available in: Atom PDF