From c00d4f5d11a79c14a4274c8a0cfa9ca96a4d9390 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Sat, 29 Aug 2015 17:49:10 -0500 Subject: [PATCH] Add Last Raised Exception In The Call Stack as a ruby til. --- README.md | 1 + .../last-raised-exception-in-the-call-stack.md | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 ruby/last-raised-exception-in-the-call-stack.md diff --git a/README.md b/README.md index 28cf63b..81ba843 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ smart people at [Hashrocket](http://hashrocket.com/). - [Evaluating One-Off Commands](ruby/evaluating-one-off-commands.md) - [FactoryGirl Sequences](ruby/factory-girl-sequences.md) - [Finding The Source of Ruby Methods](ruby/finding-the-source-of-ruby-methods.md) +- [Last Raised Exception In The Call Stack](ruby/last-raised-exception-in-the-call-stack.md) - [Limit Split](ruby/limit-split.md) - [Listing Local Variables](ruby/listing-local-variables.md) - [Next And Previous Floats](ruby/next-and-previous-floats.md) diff --git a/ruby/last-raised-exception-in-the-call-stack.md b/ruby/last-raised-exception-in-the-call-stack.md new file mode 100644 index 0000000..471bd16 --- /dev/null +++ b/ruby/last-raised-exception-in-the-call-stack.md @@ -0,0 +1,18 @@ +# Last Raised Exception In The Call Stack + +In Ruby, the `$!` global variable contains the last exception that was +raised in the current call stack. This makes it trivial to check what error +is being rescued even if it hasn't been captured in a local variable. + +```ruby +class MyError < StandardError; end + +def do_stuff + raise MyError +rescue + puts "rescuing #{$!}" +end + +do_stuff +#=> rescuing MyError +```