Вот реальный быстрый пример:
puts File.join(nil, "hello")
Выведет
test.rb:4:in 'join': can't convert nil into String (TypeError)
from test.rb:4
Но когда я это делаю:
begin
puts File.join(nil, "hello")
rescue => exception
puts exception.backtrace
end
Это приведет к выводу
test.rb:4:in 'join'
test.rb:4
Теперь, как я могу захватить полную обратную трассировку, в том числе "не могу преобразовать nil в часть String (TypeError)"?
@Суда Сары: В моем конкретном коде этот фрагмент:
puts "=============================="
puts error.message
puts "=============================="
puts error.inspect
puts "=============================="
puts error.backtrace
puts "=============================="
возвращает
==============================
exit
==============================
#<SystemExit: exit>
==============================
/usr/lib/ruby/1.8/glib2.rb:37:in `exit'
/usr/lib/ruby/1.8/glib2.rb:37:in `exit_application'
multi.rb:234:in `main'
multi.rb:347
==============================