Actions
Feature #9400
openRespect constant lookup when using `raise`
Status:
Open
Assignee:
-
Target version:
-
Description
When raising an error without defining an exception class, ::RuntimeError
appears to be a hard-coded default. I propose that this be changed so proper constant lookup rules are respected when looking up RuntimeError
. For example, I would expect both of the raise
calls in this example to be identical and use the redefined RuntimeError
class with the hello
method:
module Test
class RuntimeError < RuntimeError
def hello
puts 'Hi there!'
end
end
begin
raise RuntimeError
rescue => e
e.hello #=> Hi there!
end
begin
raise
rescue => e
e.hello #=> undefined method `hello' for RuntimeError:RuntimeError
end
end
I would find this behavior to be of quite some convenience. A lot (most?) libraries only have a single error class, and this would allow developers to implicitly raise
exceptions of the appropriate class.
Thoughts?
Actions
Like0
Like0