From: merch-redmine@... Date: 2021-04-20T17:45:30+00:00 Subject: [ruby-core:103527] [Ruby master Bug#17812] Timeout::Error doesn't let two-argument raise() set a new message Issue #17812 has been updated by jeremyevans0 (Jeremy Evans). I've submitted a pull request to fix this: https://github.com/ruby/timeout/pull/3 ---------------------------------------- Bug #17812: Timeout::Error doesn't let two-argument raise() set a new message https://bugs.ruby-lang.org/issues/17812#change-91628 * Author: martin.dorey@hds.com (Martin Dorey) * Status: Open * Priority: Normal * ruby -v: ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux-gnu] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Shouldn't this: ``` martind@pizzagate:~$ ruby -we 'require "timeout"; raise(Timeout::Error.new("hello"), "world")' Traceback (most recent call last): -e:1:in `
': hello (Timeout::Error) martind@pizzagate:~$ ``` ... say "world", like this: ``` martind@pizzagate:~$ ruby -we 'raise(RuntimeError.new("hello"), "world")' Traceback (most recent call last): -e:1:in `
': world (RuntimeError) martind@pizzagate:~$ ``` ... rather than "hello"? Sorry to raise an issue against such an old version but, if I'm right about the cause being that Timeout::Error#exception ignores its arguments, then that, judging by https://github.com/ruby/ruby/blob/3d32c217586a48c709b762865a8abc46f9098455/lib/timeout.rb#L38, hasn't changed since. I have a work around for what I'm trying to do, which is generic code to re-raise an exception with some added information, so I don't need a fix or help, but I wanted to do my little bit to help Ruby have fewer surprises. I was interested to discover, in doing this, the new :cause option. I did try to check that I'm not raising a duplicate, but sorry if I failed. -- https://bugs.ruby-lang.org/ Unsubscribe: