Any reason to use `error` vs `throw` here?