# Ruby "better" unhandled exception output

**URL:** <https://www.ruby-forum.com/t/ruby-better-unhandled-exception-output/157429>\
**Category:** Ruby\
**Created:** [January 11, 2009, 6:34am UTC](https://www.ruby-forum.com/t/ruby-better-unhandled-exception-output/157429 "2009-01-11T06:34:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rooger\_Pack](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ea5d25/32.png) [@Rooger\_Pack](https://www.ruby-forum.com/u/Rooger_Pack)\
**Post date:** [January 11, 2009, 6:34am UTC](https://www.ruby-forum.com/t/ruby-better-unhandled-exception-output/157429/1 "2009-01-11T06:34:37Z")

</div>

Inspired by some blog post, unroller, Tracer, and Python, I bring you.

backtracer

why: the default unhandled exception screen output is somewhat sparse:  
ex:

ruby crash.rb  
crash.rb:6:in `go2': unhandled exception from crash.rb:11:in `go’  
from crash.rb:15

The new backtracer, however:

ruby -rbacktracer crash.rb

unhandled exception: crash.rb:6: raise  
locals: {“a”=\>“3”, “b”=\>3, “within\_go2”=\>4}  
from:  
crash.rb:1 go2(a=\>3, b=\>55)  
locals: {“a”=\>“3”, “b”=\>3, “within\_go2”=\>4}  
crash.rb:8 go(a=\>3)  
locals: {“a”=\>“3”, “within\_go”=\>2}

How to use:

# copy backtracer.rb to pwd from

[http://github.com/rogerdpack/ruby\_backtracer/tree/master](http://github.com/rogerdpack/ruby_backtracer/tree/master)  
gem install ruby-debug # if you don’t have it installed

then run as ruby -rbacktracer script\_name

Sorry it’s not a gem yet, should be by next week.  
Feedback welcome.  
Enjoy!  
-=r
