How to crash Ruby
3rd Jan 2007 | Tags: programming ruby
1 2 3 4 5 6 7 8 9 10 11 class BrokenError < StandardError def backtrace raise(StandardError.new) end end begin raise BrokenError.new rescue e puts 'rescued' end
Because of the exception in the backtrace generation, processing just dies. If you have an at_exit block, it will still be run, so I suppose I’m not really crashing the ruby interpreter, I suppose, but it comes close.
Found this one out migrating a rails app from 1.1.6 to 1.2. Instead of doing this:
1 render 'controller/action'
the deprecation warning suggests the following:
1 render :file => 'controller/action'
Unfortunately, this causes the error if you’re still trying to run in 1.1.6. A more complete fix is to make sure to add use_full_path to the render call to prevent an older TemplateError from horking, like so:
1 render :file => 'controller/action', :use_full_path => true