Feature #9400
Respect constant lookup when using `raise`
Status:
Open
Priority:
Normal
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?
Updated by jeremyevans0 (Jeremy Evans) over 1 year ago
- Backport deleted (
1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN) - ruby -v deleted (
2.1.0) - Tracker changed from Bug to Feature