Feature #8960
open
- Category set to core
- Assignee set to ko1 (Koichi Sasada)
- Target version set to 2.1.0
I'll try before preview-2.
JRuby already has a implementation and tests?
JRuby has implementation but no tests. The test should look pretty much like Thread#backtrace_locations tests, though.
I can work on some tests if you work on impl for MRI.
What will be returned from an exception set by Exception#set_backtrace in JRuby?
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r44170.
Charles, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- error.c: add Exception#backtrace_locations.
Now, there are no setter and independent from Exception#backtrace.
[Feature #8960]
- eval.c (setup_exception): set backtrace locations for `bt_location'
special attribute.
- vm_backtrace.c (rb_backtrace_to_location_ary): added.
- internal.h: ditto.
- test/ruby/test_backtrace.rb: add a test for
Exception#backtrace_locations.
- Status changed from Closed to Feedback
- Target version changed from 2.1.0 to 2.6
- % Done changed from 100 to 0
Now, I implemented half-baked feature (read-only backtrace locations).
How about to continue how to change it?
ko1: I have no problem whatsoever with backtrace_locations being read-only now and forever. I'm glad to see this made it into 2.1 as at least a basic feature.
- Assignee changed from ko1 (Koichi Sasada) to headius (Charles Nutter)
Is there any way to re-raise an exception and propagate backtrace_locations
? When I want to trap an exception and provide a different exception class and error message, I'm used to doing something like:
rescue => e
raise MyCustomException, "Error details", e.backtrace
But this is calling set_backtrace
, leaving the resulting exception's backtrace_locations
nil (on MRI 2.3.1) or and empty array (on jruby 9.1.2.0).
If only some exceptions will have a valid backtrace_locations
array (matching the information in backtrace
), it is difficult to write code that takes advantage of this feature.
Ryan Nevell wrote:
Is there any way to re-raise an exception and propagate backtrace_locations
? When I want to trap an exception and provide a different exception class and error message, I'm used to doing something like:
Nothing right now.
If only some exceptions will have a valid backtrace_locations
array (matching the information in backtrace
), it is difficult to write code that takes advantage of this feature.
Agree.
- Status changed from Feedback to Assigned
- Assignee changed from headius (Charles Nutter) to ko1 (Koichi Sasada)
We looked at this issue today. It turned out that ruby do not fully implement what was needed originally now. Reopened the ticket to assign ko1.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0