From: asari.ruby@... Date: 2016-09-26T00:56:03+00:00 Subject: [ruby-core:77391] [Ruby trunk Bug#12588] When an exception is re-raised in the "rescue" clause, the back trace does not contain the line in that clause Issue #12588 has been updated by Hiro Asari. The current stacktrace is misleading. Without line 4 in it, the implication is that the exception was found on line 2, and was not caught by `rescue`. In this simple case, the stack trace should contain lines `[4,7]`, not `[2,7]`. I am not sure how I can use `Exception#cause`. I tried: ~~~ $ cat -n foo.rb 1 def foo 2 raise StandardError 3 rescue StandardError => e 4 puts e.cause.class 5 raise e.cause 6 end 7 8 foo $ ruby -v foo.rb ruby 2.4.0dev (2016-09-21 trunk 56200) [x86_64-darwin15] NilClass foo.rb:5:in `raise': exception object expected (TypeError) from foo.rb:5:in `rescue in foo' from foo.rb:2:in `foo' from foo.rb:8:in `
' ~~~ ---------------------------------------- Bug #12588: When an exception is re-raised in the "rescue" clause, the back trace does not contain the line in that clause https://bugs.ruby-lang.org/issues/12588#change-60644 * Author: Hiro Asari * Status: Rejected * Priority: Normal * Assignee: * ruby -v: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin14] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Given: ~~~ $ cat -n foo.rb 1 def foo 2 raise StandardError 3 rescue StandardError => e 4 raise e 5 end 6 7 foo ~~~ one would reasonably expect to see line 4 to be in the back trace when this file is executed, but one does not. ~~~ $ ruby -v foo.rb ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin14] foo.rb:2:in `foo': StandardError (StandardError) from foo.rb:7:in `
' ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: