narrow the scope of the catch so that fewer errors are masked,
append the original error for user evaluation.

this still masks typos in the strfun code, because they're
indistinguishable from the strfun not allowed message,
and it's impossible to tell, client side, which is which.