What's the situation this code is going to be used in?

What's wrong with rescuing?

>> def foo(a, b); [a, b]; end

>> begin; foo(); rescue(ArgumentError); "More, please."; end
=> "More, please."