Как сделать исключение, сделанное ререйзом от bar
в последней строке, похоже, что оно произошло оттуда, а не от блока? Я хочу видеть bar
в обратном направлении.Re-raise ruby exception from different place
begin
raise "foo"
rescue => e # yeah, i know
$e = e # oh boy, globals
end
sleep 1 # again, i know
def bar
raise $e
end
bar # => test.rb:2:in `<main>': foo (RuntimeError)
Edit:
Ток трассировку является
test.rb:2:in `<main>': foo (RuntimeError)
что я хочу (или STH похожа)
test.rb:10:in `bar': foo (RuntimeError)
from test.rb:13:in `<main>'
Очень хорошо вопрос, действительно * + 1 * .. –
Что именно вы хотите иметь в backtrace? Просто бар, или оригинальная задняя линия так же хорошо? – BroiSatse
Я пока не могу сказать, чего вы хотите, но вы можете больше узнать об исключении в целом, чтобы убедиться, что это правильный концептуальный подход. ** Пожалуйста, разместите обратную трассировку, которую вы сейчас получаете, и то, что вы хотите, вместо этого ** –