为未处理的exception注册处理程序

是否可以为任何未处理的exception定义exception处理程序? 将我的整个代码块包装在begin / rescue / end块中会感觉很乱。

使用at_exit怎么样? 即使发生exception也应该调用它,您可以使用$记录最后一个exception!

这是一个例子:

 at_exit { puts "Last exception: (#{$!.inspect})" puts "Backtrace: \n#{$@}" puts "Exiting..." } puts "my app..." raise "Exception!" 

http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-at_exit