[#82063658] Standardize error handling

Being specific about where the errors are raised so that clients can rescue the correct error.

-- CT
I agree, though I'm not certain what the convention is. Should I provide it as a .ruby-version.sample so folks can copy it?