Being consistent about throwing Errors rather than strings