Throw explicit Error objects rather than strings