Use catch/throw instead of raise/rescue
This is *much* faster in jruby, and about 5% faster in MRI.