Yesterday, I spent hours debugging a stupid exception construct in ruby. Why wasn't it rescuin the thrown exception? Ends up that it's because you RAISE exception, not throw them. Throw/catch mean completely different things in ruby.
Raise/rescue! And another thing I forget often is that I have to raise an instance of a class, not just the class itself!