Should throw exceptions consistently so developer does not have to wrap